H
hdflurry
Unregistered / Unconfirmed
GUEST, unregistred user!
调用存储过程的代码如下:
function TEquip.recordLog:OleVariant;
var
LogCorrect:Integer;
begin
//theDm是一个数据模块对象,其中有ADOConnection1,ADOStoredProc1和DataSetProvider1
with theDm.ADOStoredProc1 do
begin
close;
Parameters.Clear;
ProcedureName:='RecLog';
Parameters.AddParameter.Name:='@Code';
Parameters[0].DataType:=ftString;
Parameters[0].Value:='AAAA';
Parameters.AddParameter.Name:='@Content';
Parameters[1].DataType:=ftWideString;
Parameters[1].Value:='test hehehe';
Parameters.AddParameter.Name:='@UserName';
Parameters[2].DataType:=ftWideString;
Parameters[2].Value:='hdflurry';
Prepared:=true;
//ExecProc;
//如果加上此句则服务器端的存储过程就会执行两遍
LogCorrect:=Fields[0].AsInteger ;
//我想得到此存储过程执行后返回的整型值 LogCorrect (值为0或1) ,但如果加上这句的话就出错.错误提示为"List index out of bounds(0)",如果去掉这句可执行.
end;
result:=thedm.DataSetProvider1.data;
end;
哪位可解?
还有一个现象,如果我在上面的代码里用了ExecProc执行存储过程,刚存储过程在服务器
端执行了两遍.如果去掉ExecProc刚执行正常.请问为什么??
function TEquip.recordLog:OleVariant;
var
LogCorrect:Integer;
begin
//theDm是一个数据模块对象,其中有ADOConnection1,ADOStoredProc1和DataSetProvider1
with theDm.ADOStoredProc1 do
begin
close;
Parameters.Clear;
ProcedureName:='RecLog';
Parameters.AddParameter.Name:='@Code';
Parameters[0].DataType:=ftString;
Parameters[0].Value:='AAAA';
Parameters.AddParameter.Name:='@Content';
Parameters[1].DataType:=ftWideString;
Parameters[1].Value:='test hehehe';
Parameters.AddParameter.Name:='@UserName';
Parameters[2].DataType:=ftWideString;
Parameters[2].Value:='hdflurry';
Prepared:=true;
//ExecProc;
//如果加上此句则服务器端的存储过程就会执行两遍
LogCorrect:=Fields[0].AsInteger ;
//我想得到此存储过程执行后返回的整型值 LogCorrect (值为0或1) ,但如果加上这句的话就出错.错误提示为"List index out of bounds(0)",如果去掉这句可执行.
end;
result:=thedm.DataSetProvider1.data;
end;
哪位可解?
还有一个现象,如果我在上面的代码里用了ExecProc执行存储过程,刚存储过程在服务器
端执行了两遍.如果去掉ExecProc刚执行正常.请问为什么??