用ADO调用一个存储过程,有一个返回参数,怎样才能取得这个返回参数的数值呢??? 用ADO调用一个存储过程,有一个返回参数,怎样才能取得这个返回参数的数值呢??? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 给你一个调用存储过程的例子!!! Result := False; StoredProc.Close; StoredProc.StoredProcName := 'PR_xRollBack'; StoredProc.Params.Clear; StoredProc.Params.Add; StoredProc.Params[ 0 ].ParamType := ptInput; StoredProc.Params[ 0 ].Name := 'No'; StoredProc.Params[ 0 ].DataType := ftString; StoredProc.Params[ 0 ].AsString := Trim( SourceHead.No ); StoredProc.Params.Add; StoredProc.Params[ 1 ].ParamType := ptInput; StoredProc.Params[ 1 ].Name := 'OldNo'; StoredProc.Params[ 1 ].DataType := ftString; StoredProc.Params[ 1 ].AsString := Trim( SourceBody.No ); StoredProc.Params.Add; StoredProc.Params[ 2 ].ParamType := ptInput; StoredProc.Params[ 2 ].Name := 'strDate'; StoredProc.Params[ 2 ].DataType := ftString; StoredProc.Params[ 2 ].AsString := SourceHead.Date; StoredProc.Params.Add; StoredProc.Params[ 3 ].ParamType := ptInput; StoredProc.Params[ 3 ].Name := 'strTime'; StoredProc.Params[ 3 ].DataType := ftString; StoredProc.Params[ 3 ].AsString :=Copy(SourceHead.Time,1,2)+':'+Copy(SourceHead.Time,3,2)+':'+Copy(SourceHead.Time,5,2); StoredProc.Params.Add; StoredProc.Params[ 4 ].ParamType := ptOutput; StoredProc.Params[ 4 ].Name := 'Sequence'; StoredProc.Params[ 4 ].DataType := ftString; StoredProc.Params.Add; StoredProc.Params[ 5 ].ParamType := ptOutput; StoredProc.Params[ 5 ].Name := 'Money'; StoredProc.Params[ 5 ].DataType := ftInteger; StoredProc.Params.Add; StoredProc.Params[ 6 ].ParamType := ptOutput; StoredProc.Params[ 6 ].Name := 'Result'; StoredProc.Params[ 6 ].DataType := ftInteger; Try Try StoredProc.ExecProc; Result := ( StoredProc.Params[ 6 ].AsInteger = 0 ); If Result Then Begin Sequence:= StoredProc.Params[ 4 ].AsString; Money := StoredProc.Params[ 5 ].AsString; WriteLog( ERROR_SUCCESS, CMD_ID, CMD_95_SELF_ROLLBACK ); End Else WriteLog( ERROR_UPDATE_DATA, CMD_ID, CMD_95_SELF_ROLLBACK ); Except WriteLog( ERROR_UPDATE_DATA, CMD_ID, CMD_95_SELF_ROLLBACK ); End; Finally StoredProc.Close; End; 定义一个与此参数数据类型一样的变量如:aa:integer;adoquery.text:= 'exec 存储过程名' + aa + ''';执行完成后,aa的值就是存储过程的参数返回值OK 老公获奖了,开心!! 关于获取远程机器上文件属性的问题 这样获取windows和unix系统下的系统进程 delphi8.0 又一次向微软的妥协? 熟悉的变量人一看就会!因此请教! 急寻加密方法,重金200分,分三次给 请高手帮忙,万分感谢! 为什么很多人一听到“Delphi”就说“哦,做数据库的” 二维数组的初始化 请各位大虾帮忙出出主意!!! 请教一个关于CreateProcessAsUser的问题。 关于数据库中连接多个表的问题?
StoredProc.Close;
StoredProc.StoredProcName := 'PR_xRollBack';
StoredProc.Params.Clear; StoredProc.Params.Add;
StoredProc.Params[ 0 ].ParamType := ptInput;
StoredProc.Params[ 0 ].Name := 'No';
StoredProc.Params[ 0 ].DataType := ftString;
StoredProc.Params[ 0 ].AsString := Trim( SourceHead.No ); StoredProc.Params.Add;
StoredProc.Params[ 1 ].ParamType := ptInput;
StoredProc.Params[ 1 ].Name := 'OldNo';
StoredProc.Params[ 1 ].DataType := ftString;
StoredProc.Params[ 1 ].AsString := Trim( SourceBody.No ); StoredProc.Params.Add;
StoredProc.Params[ 2 ].ParamType := ptInput;
StoredProc.Params[ 2 ].Name := 'strDate';
StoredProc.Params[ 2 ].DataType := ftString;
StoredProc.Params[ 2 ].AsString := SourceHead.Date; StoredProc.Params.Add;
StoredProc.Params[ 3 ].ParamType := ptInput;
StoredProc.Params[ 3 ].Name := 'strTime';
StoredProc.Params[ 3 ].DataType := ftString;
StoredProc.Params[ 3 ].AsString :=Copy(SourceHead.Time,1,2)+':'+Copy(SourceHead.Time,3,2)+':'+Copy(SourceHead.Time,5,2); StoredProc.Params.Add;
StoredProc.Params[ 4 ].ParamType := ptOutput;
StoredProc.Params[ 4 ].Name := 'Sequence';
StoredProc.Params[ 4 ].DataType := ftString; StoredProc.Params.Add;
StoredProc.Params[ 5 ].ParamType := ptOutput;
StoredProc.Params[ 5 ].Name := 'Money';
StoredProc.Params[ 5 ].DataType := ftInteger; StoredProc.Params.Add;
StoredProc.Params[ 6 ].ParamType := ptOutput;
StoredProc.Params[ 6 ].Name := 'Result';
StoredProc.Params[ 6 ].DataType := ftInteger;
Try
Try
StoredProc.ExecProc;
Result := ( StoredProc.Params[ 6 ].AsInteger = 0 );
If Result Then
Begin
Sequence:= StoredProc.Params[ 4 ].AsString;
Money := StoredProc.Params[ 5 ].AsString;
WriteLog( ERROR_SUCCESS, CMD_ID, CMD_95_SELF_ROLLBACK );
End
Else WriteLog( ERROR_UPDATE_DATA, CMD_ID, CMD_95_SELF_ROLLBACK );
Except
WriteLog( ERROR_UPDATE_DATA, CMD_ID, CMD_95_SELF_ROLLBACK );
End;
Finally
StoredProc.Close;
End;
如:
aa:integer;
adoquery.text:= 'exec 存储过程名' + aa + ''';
执行完成后,aa的值就是存储过程的参数返回值
OK