|
|
导航: |
论坛 -> 数据库专区
斑竹:liumazi,waterstone |
|
作者: |
|
2017/5/10 23:36:43 |
标题: |
咨询下, TUniStoredProc 调用mysql 存储过程怎么接收返回的数据啊? |
浏览:1319 |
|
加入我的收藏 |
楼主: |
我现在写的是这样
UniStoredProc1.StoredProcName:= 'ShowAllIC'; UniStoredProc1.PrepareSQL; UniStoredProc1.ParamByName ('_lb').AsInteger:=1; UniStoredProc1.Execute;
不知道怎么接收返回的数据,
----------------------------------------------
- |
作者: |
|
2017/5/11 8:54:43 |
1楼: |
这个用的是ODAC,都是一家公司的产品,写法应该雷同
function TTransOrderQuery.AddOrderInfo: Integer; begin Result := -1;
Proc.Close; Proc.Params.Clear; //设置存储过程名 Proc.StoredProcName := 'PK_Orders.Pr_Update_Transfer_Order'; //创建存储过程参数 Proc.Params.CreateParam( ftString, 'iOrder_ID', ptInput ); Proc.Params.CreateParam( ftString, 'iUser_ID', ptInput ); Proc.Params.CreateParam( ftString, 'iBank_ID', ptInput ); Proc.Params.CreateParam( ftString, 'iBank_Name', ptInput ); Proc.Params.CreateParam( ftString, 'iBank_Card_ID', ptInput ); Proc.Params.CreateParam( ftInteger, 'iOrder_Value', ptInput ); Proc.Params.CreateParam( ftInteger, 'iOrder_State_ID', ptInput ); Proc.Params.CreateParam( ftString, 'iCreate_Timestamp', ptInput ); Proc.Params.CreateParam( ftString, 'iConfirm_Timestamp', ptInput ); Proc.Params.CreateParam( ftInteger, 'oResult_Code', ptOutput ); Proc.Params.CreateParam( ftString, 'oResult_Desc', ptOutput ); //存储过程输入参数赋值 Proc.Params.ParamByName( 'iOrder_ID' ).AsString := OrderID; Proc.Params.ParamByName( 'iOrder_ID' ).AsString := UserID; Proc.Params.ParamByName( 'iBank_ID' ).AsString := OrderInfo.BankID; Proc.Params.ParamByName( 'iBank_Name' ).AsString := OrderInfo.BankName; Proc.Params.ParamByName( 'iBank_Card_ID' ).AsString := OrderInfo.BankCard; Proc.Params.ParamByName( 'iOrder_Value' ).AsInteger := OrderInfo.Value; Proc.Params.ParamByName( 'iOrder_State_ID' ).AsInteger := OrderInfo.Status; Proc.Params.ParamByName( 'iCreate_Timestamp' ).AsString := OrderInfo.CreateTimestamp; Proc.Params.ParamByName( 'iConfirm_Timestamp' ).AsString := OrderInfo.ConfirmTimestamp;
Proc.ParamCheck := True; //调用存储过程 Try Proc.Execute; //获取存储过程返回值 Result := Proc.Params.ParamByName( 'oResult_Code' ).AsInteger; Except On E : Exception Do Begin Log.Error( BatchID + ' - 调用存储过程' + Proc.StoredProcName + '发生异常,异常信息:' + E.Message ); End; End; end;
----------------------------------------------
-
|
|