关于调用存储过程 (100分)

  • 主题发起人 主题发起人 esgeht
  • 开始时间 开始时间
E

esgeht

Unregistered / Unconfirmed
GUEST, unregistred user!
下面是我调用存储过程并传递参数的过程,请问错在哪里?
try
//这里本来是写成
//DataModule1.SPMinData.Parameters.ParamByName('@fdt_RecordDateTime').AsDateTime:=now;
//但是这样写编译都不通过,只好写成下面的样子
DataModule1.SPMinData.Parameters.ParamByName('@fdt_RecordDateTime').Value:=now;
DataModule1.SPMinData.Prepared;
DataModule1.SPMinData.ExecProc;
except
showMessage('执行存储过程Pro_InsertMinData出错!');
end;
 
我想是多了一个@吧
 
提示错误信息是什么?
有可能你的存储过程有错
 
可能是你参数设置有问题吧,看看参数的数据类型是否正确?
其实用个
Query.SQL.Add('Exec Myproc :params);
Query.parambyname('params').asdatetime:=now;
更方便吧。
 
首先看在后台可以不了,
如果后台可以,请查查
SPMinData的DATABASE属性了(是ADO的话查相应的了)
再查Params了当然包括其数据类型了。
 
这个问题我也碰到过。
解决的办法是:
DataModule1.SPMinData.Parameters.field[1].Value:=now;
DataModule1.SPMinData.Prepared;
DataModule1.SPMinData.ExecProc;
如果只有一个参数的话就这莫写。
Parameters.field[0]为默认integer型的返回值,你可以不用理它。
这样是没有问题的。
 
多人接受答案了。
 

Similar threads

后退
顶部