Oracle存储过程
CREATE OR REPLACE PROCEDURE MYDATA.AAA /* (参数, 参数...) */
(
v_id in NUMBER,
c_outdata out SYS_REFCURSOR
)
ISv_sql varchar2(200);
BEGIN
v_sql :='select * from userinfo where userid='||v_id;
open c_outdata for v_sql;
END ;
/DELPHI 调用var
ADOStoredProc:TADOStoredProc;
begin
ADOStoredProc:=TADOStoredProc.Create(nil);
try
try
ADOStoredProc.Connection:=ADOConnection;
ADOStoredProc.Close;
ADOStoredProc.ProcedureName:=MYDATA.AAA';
ADOStoredProc.Parameters.CreateParameter('c_id',ftInteger,pdInput,10,123);
ADOStoredProc.Open;
except
on E:Exception do
begin
Msgbox(E.Message,mtError,[mbok],0);
end;
end;
finally
ADOStoredProc.Free;
end;
end;
错误信息:弄了很久了就是不行
CREATE OR REPLACE PROCEDURE MYDATA.AAA /* (参数, 参数...) */
(
v_id in NUMBER,
c_outdata out SYS_REFCURSOR
)
ISv_sql varchar2(200);
BEGIN
v_sql :='select * from userinfo where userid='||v_id;
open c_outdata for v_sql;
END ;
/DELPHI 调用var
ADOStoredProc:TADOStoredProc;
begin
ADOStoredProc:=TADOStoredProc.Create(nil);
try
try
ADOStoredProc.Connection:=ADOConnection;
ADOStoredProc.Close;
ADOStoredProc.ProcedureName:=MYDATA.AAA';
ADOStoredProc.Parameters.CreateParameter('c_id',ftInteger,pdInput,10,123);
ADOStoredProc.Open;
except
on E:Exception do
begin
Msgbox(E.Message,mtError,[mbok],0);
end;
end;
finally
ADOStoredProc.Free;
end;
end;
错误信息:弄了很久了就是不行
http://topic.csdn.net/t/20061124/10/5181888.html
可能是ADO的问题
(你的Oracle存储过程本身没问题,也可能是表字段类型问题)
你用Microsoft OLE DB Provider for Oracle就应该OK了