读书人

delphi调用oracle存储过程的有关问题

发布时间: 2013-03-26 21:09:12 作者: rapoo

delphi调用oracle存储过程的问题,急
这是我创建的表,表名tlogin
n1 n2
123 321 其中字段n1n2都是number类型
这是存储过程:
create or replace procedure proc_login(cang_n1 number,cang_n2 number)
is
begin
 insert into TLogin values(cang_n1,cang_n2);
end PROC_LOGIN;
然后用adoconnection 连接ORACLE数据库,还用adoquery控件,代码如下:
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add( '{call proc_login(?,?)} ');
adoquery1.Parameters.CreateParameter( 'cang_n1 ',ftinteger,pdinput,20,strtoint(edit1.Text));
adoquery1.Parameters.CreateParameter( 'cang_n2 ',ftinteger,pdinput,20,strtoint(edit2.Text));
adoquery1.Open;

编译有通过,但运行不了,出错提示: EOleExecption with message '列不存在. '
哪个高手能帮我看下,定给分


[解决办法]
self.ADOCommand1.CommandType:= cmdStoredProc;
self.ADOCommand1.CommandText:= 'proc_login ';
self.ADOCommand1.Parameters.CreateParameter( 'cang_n1 ',ftInteger,pdInput,4,strtoint(edit1.Text));
self.ADOCommand1.Parameters.CreateParameter( 'cang_n2 ',ftInteger,pdInput,4,strtoint(edit2.Text));
self.ADOCommand1.Execute;
[解决办法]
self.ADOQuery1.Close;
self.ADOQuery1.SQL.Clear;
self.ADOQuery1.SQL.Add( '{call proc_login(?,?)} ' );
self.ADOQuery1.Parameters.Clear;
self.ADOQuery1.Parameters.CreateParameter( 'cang_n1 ',ftInteger,pdInput,4,strtoint(edit1.Text));
self.ADOQuery1.Parameters.CreateParameter( 'cang_n2 ',ftInteger,pdInput,4,strtoint(edit2.Text));
self.ADOQuery1.ExecSQL;
我的异常网推荐解决方案:oracle存储过程,http://www.myexception.cn/oracle-develop/177537.html

读书人网 >.NET

热点推荐