首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

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

2013-03-26 
delphi调用oracle存储过程的问题,急这是我创建的表,表名tloginn1n2123321其中字段n1n2都是number类型这是

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

热点排行