原生ADO用command执行储存过程的问题(100)

  • 主题发起人 主题发起人 xyh1982
  • 开始时间 开始时间
X

xyh1982

Unregistered / Unconfirmed
GUEST, unregistred user!
var cmd: _Command; par: _Parameter;begin cmd := CoCommand.Create; cmd.Set_ActiveConnection(con); cmd.CommandText := 'Insertnew'; cmd.CommandType := adCmdStoredProc; par := cmd.CreateParameter('M_dh', adInteger, adParamInput, SizeOf(Integer), WTF); //变量WTF 为Byte 取值为:1或2或3 ,SizeOf()函数用的对不对?? cmd.Parameters.Append(par); par := cmd.CreateParameter('M_WTF', adVarChar, adParamInput, 50, self.edt2.Text); cmd.Parameters.Append(par); par := cmd.CreateParameter('M_WTRQ', adDate, adParamInput, SizeOf(Date), self.dtp1.Date); //这里的SizeOf()函数对不对?? cmd.Parameters.Append(par); par := cmd.CreateParameter('M_BARY', adVarChar, adParamInput, 10, log); cmd.Parameters.Append(par); cmd.Execute(EmptyParam, EmptyParam, adCmdStoredProc+ adExecuteNoRecords); //这里出现错误,运行时显示 [过程 ‘insertnew’需要参数 '@M_DH' ,但未提供该参数],不知是这句有问题,还是第一个参数赋值时有问题 par := nil; cmd := nil; self.lv1.RefreshData;end;郁闷!!杨芹勍的电脑销售系统大体也是这样,为什么他的行我的不行呢??
 
SizeOf()是占用内存空间的长度,一般不会用到去计算占用内存空间吧
 
sizeof (WTF) 试试
 
已解决,加上这句: par := cmd.CreateParameter('Return', adBoolean, adParamReturnValue, 1, EmptyParam ); cmd.Parameters.Append( par );
 
后退
顶部