一、我们在Delphi中有时候要访问数据库操作调用存储过程来实现对数据库的增删改等操作。
那么在Delphi中如何使用TADOStoredProc控件呢?
之前没用过也是不知道该怎么写代码,在网上也查了很多例子,但是都没有实现,下面将自己
实现好的代码贴出来,希望对初学者有帮助。
向界面拖控件TADOConnection 和TADOStroceProc控件一次命名为adoCnt和adosp;
procedure TForm1.btnupdateClick(Sender: TObject);
var
return: string;
begin
adosp.Close;
adosp.Parameters.Clear;
adosp.ProcedureName:= 'history_qq_recorde';//存储过程名称
// Added by Administrator 2013-9-18 11:20:07
//参数1: 是存储过程函数的形参(表里面的字段名)
//参数2: 是数据类型(注:是一个宏定义,可以按照ctrl点击进去查看)
//参数3: 是输入输出方向(注:是一个宏定义同上)
//参数4: 是数据类型的大小
//参数5: 是宏定义类型。
try
adosp.Parameters.CreateParameter('begindate_in', ftString, pdInput, 20, fgUnassigned);//传入参数(数字代表长度)
adosp.Parameters.CreateParameter('enddate_in', ftString, pdInput, 20, fgUnassigned); //传入参数
adosp.Parameters.CreateParameter('RESULT', ftInteger, pdoutput, 4, fgUnassigned); //返回值
//为参数赋值
adosp.Parameters[0].Value := '20200101';
adosp.Parameters[1].Value := '20200101';
adosp.Parameters[2].Value := 0;
adosp.ExecProc; //执行
return :=adosp.Parameters.ParamByName('RESULT').Value;//返回结果值
ShowMessage(return);
//ShowMessage(string(adosp.Parameters.ParamByName('RESULT').Value));
except
ShowMessage('执行存储过程失败!');
adoCnt.Close;
Exit;
end;
end;