急急急!关于VB与存储过程。

1976dragon2003 2003-10-15 09:12:49
我用vb用存储过程的向SQL插入数据,在执行第一次成功,但在点保存,提示说参数没有声明,但重新运行有可以。着急谢谢指点。
存储过程:
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[newaddtelex]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[newaddtelex]
GO

SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO


create procedure newaddtelex
@laizi nchar(20),
@haoshu int,
@zhushu int,
@dengji int,
@baotousj nchar(20),
@fawanghetai varchar(50),
@baowenfuzhu varchar(50),
@baowennuir varchar(8000),
@jisqianm nchar(20)
as
declare @baowenbianhao int
set nocount on
insert into userbaoweninfo(原始报文) values
(@baowennuir)

select @baowenbianhao=count(*)from userbaoweninfo

insert into userfabao (来自,号数,组数,等级,报头时间,发往何台,附注,电报代号,报文类型,记时签名) values
(@laizi,@haoshu,@zhushu,@dengji,@baotousj,@fawanghetai,@baowenfuzhu,@baowenbianhao,1,@jisqianm)


GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
VB代码:
Cm.CommandText = "newaddtelex"
Cm.Parameters.Append Cm.CreateParameter("@laizi", adChar, adParamInput, 20)
Cm.Parameters("@laizi") = Trim(.TextMatrix(1, 1))
Cm.Parameters.Append Cm.CreateParameter("@haoshu", adInteger, adParamInput)
Cm.Parameters("@haoshu") = Trim(.TextMatrix(1, 3))
Cm.Parameters.Append Cm.CreateParameter("@zhushu", adInteger, adParamInput)
Cm.Parameters("@zhushu") = Trim(.TextMatrix(1, 4))
Cm.Parameters.Append Cm.CreateParameter("@dengji", adInteger, adParamInput)
Cm.Parameters("@dengji") = Trim(.TextMatrix(1, 5))
Cm.Parameters.Append Cm.CreateParameter("@baotousj", adChar, adParamInput, 20)
Cm.Parameters("@baotousj") = Trim(.TextMatrix(1, 6)) & Trim(.TextMatrix(1, 7))
Cm.Parameters.Append Cm.CreateParameter("@fawanghetai", adVarChar, adParamInput, 50)
Cm.Parameters("@fawanghetai") = Trim(.TextMatrix(2, 3))
Cm.Parameters.Append Cm.CreateParameter("@baowenfuzhu", adVarChar, adParamInput, 50)
Cm.Parameters("@baowenfuzhu") = Trim(.TextMatrix(3, 3))
Cm.Parameters.Append Cm.CreateParameter("@baowennuir", adVarChar, adParamInput, 8000)
Cm.Parameters("@baowennuir") = BaoWenNR
Cm.Parameters.Append Cm.CreateParameter("@jisqianm", adChar, adParamInput, 20)
Cm.Parameters("@jisqianm") = Trim(.TextMatrix(1, 8))
Cm.Execute
...全文
31 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianmiaohu 2003-10-15
  • 打赏
  • 举报
回复
You should separate your Command defining statements from your parameters setting statements. The Command defining statements should be executed just once.

Do this in the Form_Load or a global initialization method:
Cm.CommandText = "newaddtelex"
Cm.Parameters.Append Cm.CreateParameter("@laizi", adChar, adParamInput, 20)
Cm.Parameters.Append Cm.CreateParameter("@haoshu", adInteger, adParamInput)
Cm.Parameters.Append Cm.CreateParameter("@zhushu", adInteger, adParamInput)
Cm.Parameters.Append Cm.CreateParameter("@dengji", adInteger, adParamInput)
Cm.Parameters.Append Cm.CreateParameter("@baotousj", adChar, adParamInput, 20)
Cm.Parameters.Append Cm.CreateParameter("@fawanghetai", adVarChar, adParamInput, 50)
Cm.Parameters.Append Cm.CreateParameter("@baowenfuzhu", adVarChar, adParamInput, 50)
Cm.Parameters.Append Cm.CreateParameter("@baowennuir", adVarChar, adParamInput, 8000)
Cm.Parameters.Append Cm.CreateParameter("@jisqianm", adChar, adParamInput, 20)

Note you need to delcare Cm as a global variable at least at the form level.

Then do you parameters setting statements when you click the button or something:
Cm.Parameters("@laizi") = Trim(.TextMatrix(1, 1))
Cm.Parameters("@haoshu") = Trim(.TextMatrix(1, 3))
Cm.Parameters("@zhushu") = Trim(.TextMatrix(1, 4))
Cm.Parameters("@dengji") = Trim(.TextMatrix(1, 5))
Cm.Parameters("@baotousj") = Trim(.TextMatrix(1, 6)) & Trim(.TextMatrix(1, 7))
Cm.Parameters("@fawanghetai") = Trim(.TextMatrix(2, 3))
Cm.Parameters("@baowenfuzhu") = Trim(.TextMatrix(3, 3))
Cm.Parameters("@baowennuir") = BaoWenNR
Cm.Parameters("@jisqianm") = Trim(.TextMatrix(1, 8))
Cm.Execute

The points here:
Cm is a reusable object that you can repeatedly set its parameters and execute it to get new results.

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧