delphi 中用SQLStoredProc控件可调用数据存储过程。
下图为oracle 11g中写的存储过程IN表示输入参数,OUT表示输出参数,也可能用IN OUT表出输入输出参数。这里存储过程名为TESTPROC,功能:根据输入的param1值把EMP表中该条记录ENAME字段的值修改为param2。
下图为效果图:
**************************************************************************************
具体操作:
**************************************************************************************
DBGrid1.DataSource->DataSource1.DataSet->ClientDataSet1.ProviderName->DataSetProvider1.DataSet->
SQLDataset1.SQLConnection->SQLConnection1具体数据库(这里连接的是oracle中的EMP表);
SQLDataSet1.CommandText:=SELECT * FROM EMP;ClientDataSet1.Active:=true;
SQLStoredProc1.SQLConnection->SQLConnection1。
**************************************************************************************
主要代码:
**************************************************************************************
procedure TForm3.Button1Click(Sender: TObject); begin SQLStoredProc1.Params.Clear; SQLStoredProc1.Params.CreateParam(ftInteger,'p1',ptInput); SQLStoredProc1.Params.CreateParam(ftString,'p2',ptInput); SQLStoredProc1.Params.ParamByName('p1').Value:=StrToInt(Edit1.Text); SQLStoredProc1.Params.ParamByName('p2').Value:=Edit2.Text; SQLStoredProc1.StoredProcName:='TESTPROC'; SQLStoredProc1.ExecProc; ClientDataSet1.Refresh end;
注:如果存储过程有返回值,SQLStoredProc1.Params.ParamByName(输出参数名).Value就可取到返回值.