elphi7呼叫MySql存盤程序,在存盤程序中打開游標下面,給存盤程序出參賦值,得不到出參值。如下所示:
存盤程序:
create procedure MyProc(in inpara varchar(20),out outpara varchar(100))
begin
...
declare cur1 cursor for select id from table1;
open cur1;
set outpara='abc'; //只要放在open cur1;陳述句后面,就得不到outpara的值,顯示為空。
...
end;
delphi程式呼叫代碼:
..
sStr:='a';
with adostoreproc1.parameters do
begin
createparameter('INPARA',ftstring,pdinput,100,sStr);
createparameter('OUTPARA',ftstring,pdoutput,4000,null);
end;
adostoreproc1.execproc;
sout:=adostoreproc1.parameters.parambyname('OUTPARA').value; //這里打斷點,回傳引數值為空,sout自然也是空了。
...
uj5u.com熱心網友回復:
你應該再過補充說一下,你在Navicat Premium中除錯就可以提取出來的出參值的。
uj5u.com熱心網友回復:
是的是的,在Navicat Premium中除錯就可以提取出來的出參值的uj5u.com熱心網友回復:
估計是Delphi的一個天大的漏洞!!!!一不小心被我發現了!!!uj5u.com熱心網友回復:
寫成標準存盤程序:create procedure MyProc(inpara varchar(20), outpara varchar(100))
as
begin
// ...
select 'abc' into :outpara;
end
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/277222.html
標籤:數據庫相關