我在后台的数据库中写了一个存储过程,是这个样子的!--------新增用户存储过程CREATE PROCEDURE SQLProcNewProc @RegOperatorID nchar(10), /* 操作员ID */
@Name varchar(50),@Phone nchar(50),
@Address varchar(50),
@IdentityCard nchar(40),@Transfer bit(1),
@GasBurnerID int(4),@WaterHeaterID int(4),@GasMeter varchar(50),
@Regmoney money(8),@InstallKind int(4),@GasKindID int(4)
@ID Output int(4)
AS
Begin Insert CustomerInfor
(ICID,CName,Phone,Address,IdentityCard,Transfer,RegDay,RegOperatorID,GasBurnerID,WaterHeaterID,Gasmeter,RegMoney,Installkind)
values
(0,@CName,@Phone,@Address,@IdentityCard,@Transfer,getdate(),@RegOperatorID,@GasBurnerID,@WaterHeaterID,@GasMeter,@RegMoney,@InstallKind)
select @ID=scope_identity() end
Go在客户端中,
为各个参数赋与适合的值,
DMD.SQLProcNewProc.close;
//为参数赋值
DMD.SQLProcNewProc.execproc;
label1.Caption:=DMD.SQLProcNewProc.params.paramsByName('@ID').text;以上代码,在一个按钮控件中执行,成功,
可是第一次单击,label1.Caption 为零,第二次单击没有变(还是零),第三次没有变(还是零),
第四次才是5037.以后每次都正常.退出窗口(此时程序没有退出),再进入,每次单击都正常,但是退出整个程序又回到三次单击为零的状态,
我对这前次都进行了追踪(在存储过程中,update一个表的字段),发现标识列己经改变了,但在客户端却是零.这个问题,我一个晚上都没有解决,请高手过来帮忙!!!
@Name varchar(50),@Phone nchar(50),
@Address varchar(50),
@IdentityCard nchar(40),@Transfer bit(1),
@GasBurnerID int(4),@WaterHeaterID int(4),@GasMeter varchar(50),
@Regmoney money(8),@InstallKind int(4),@GasKindID int(4)
@ID Output int(4)
AS
Begin Insert CustomerInfor
(ICID,CName,Phone,Address,IdentityCard,Transfer,RegDay,RegOperatorID,GasBurnerID,WaterHeaterID,Gasmeter,RegMoney,Installkind)
values
(0,@CName,@Phone,@Address,@IdentityCard,@Transfer,getdate(),@RegOperatorID,@GasBurnerID,@WaterHeaterID,@GasMeter,@RegMoney,@InstallKind)
select @ID=scope_identity() end
Go在客户端中,
为各个参数赋与适合的值,
DMD.SQLProcNewProc.close;
//为参数赋值
DMD.SQLProcNewProc.execproc;
label1.Caption:=DMD.SQLProcNewProc.params.paramsByName('@ID').text;以上代码,在一个按钮控件中执行,成功,
可是第一次单击,label1.Caption 为零,第二次单击没有变(还是零),第三次没有变(还是零),
第四次才是5037.以后每次都正常.退出窗口(此时程序没有退出),再进入,每次单击都正常,但是退出整个程序又回到三次单击为零的状态,
我对这前次都进行了追踪(在存储过程中,update一个表的字段),发现标识列己经改变了,但在客户端却是零.这个问题,我一个晚上都没有解决,请高手过来帮忙!!!
解决方案 »
- 如图所示,如何在我们的控件中插入这些特殊符号
- CSDN论坛秀做至30期了,本人已经力不从心,打算停止CSDN论坛秀的活动!!
- listview中增加记录,怎么总是写在第一条上?
- 把Tframe放入DLL中,在另一个程序的Form中插入
- 怎么把ACCESS中的函数包到单元中?(着急啊!等着你给俺解答)
- 请问如何吧C:\DOCUME~1\转换成完整路径?
- 求教关于TLabel的问题?
- 有关listbox的问题~~请帮忙!!!!谢谢!!
- 有没有能按字串中指定的逗号分隔字符的函数?就像ASP中的split函数?
- 怎样让edit.text,只能输入数字!!!!??????
- 如何在开始菜单(非程序组)中添加程序?
- 报表的DetailBand里面的字段值如何居中显示(我已经将其Alignment设为taCenter,但还是不行)?
declare @r int
exec SQLProcNewProc 'A','B',..(每个参数以逗号分割)..@r(最后一个输出参数) output
print @r看看结果和程序中的一样吗
去检查那个字段,这个字段正在预料的值,在存储过程中得到的标识列的值应该是没有问题的,关键是客户端, 客户端曾经报过dbexpress.dll的错误. 这个错误,有时出现,有时不出现,
我回去时再在机子上式一下!!!!
declare @r int
exec SQLProcNewProc 'A','B',..(每个参数以逗号分割)..@r(最后一个输出参数) output
print @r看看结果和程序中的一样吗执行结果是没有问题的!!