各位高手请进,请帮忙呀,急!(300分)

  • 主题发起人 主题发起人 忍我
  • 开始时间 开始时间

忍我

Unregistered / Unconfirmed
GUEST, unregistred user!
我的程序是3层的,数据库是oracle。
用adoQUERY执行一段代码时报错:
参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。
 
再详细一些
 
东西比较多呀!不太好放呀!
 
自己顶了
 
sql脚本:
begin

declare ierrCount smallint ;

szXH char(6) ;

szPH char(10) ;

FirstPH char(10) ;

iCount smallint ;

TempExp Exception ;

begin

begin

select 0 into ierrCount from dual;

select 0 into iCount from dual;

select max(right(xh,6)) into szXH from data1 where rq='200607';

if szXH is null then
select '0' into szXH from dual ;
end if ;

select to_char(to_number(szXH)+1) into szXH from dual ;

while Length(RTrim(szXH))<6 Loop
select ' ' || RTrim(szXH) into szXH from dual ;

end Loop ;

select '记账'||szXH into szPH from dual ;

select iCount +1 into iCount from dual ;

select szPH into FirstPH from dual ;
Insert Into data1(t1,t2) values('aaa', '200607',szPH) ;

commit;

Exception
when others then
RollBack;

select '0' into FirstPH from dual;

select '0' into szPH from dual;

select 0 into iCount from dual;

end ;

Open :pRecCur for select FirstPH BPZH,szPH EPZH,iCount NUM from dual;

end;

end ;

中间层delphi代码:
执行:
ADOQuery1.Close ;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(Input);
ADOQuery1.SQL.SaveToFile('D:/QBF1.TXT') ;

if ADOQuery1.Parameters.Count>0 then
begin
for i:=0 to ADOQuery1.Parameters.Count-1do
begin
if UpperCase(ADOQuery1.Parameters.Items.Name)='PRECCUR' then
begin
ADOQuery1.Parameters.Items.DataType:=ftCursor ;
//ftVariant
ADOQuery1.Parameters.Items.Direction:= pdOutput ;
end;
end;
end;

try
ADOQuery1.Open;
except
ShowMessage('ssssssssssssssssssssssssssssssssssssssssss');
end ;
请高手帮忙!
 
在线等,急呀,DFW的各位高手,请帮忙呀!
 
iCount smallint ;是不是太小了使用INT,
要不这个应该不是存储过程的问题,应该是DELPHI的参数赋值不兼容..
你调整一下参数试试..
 
自己找到了。
中间层delphi代码:
执行:
Query1.Close ;
Query1.SQL.Clear;
Query1.SQL.Add(Input);
Query1.SQL.SaveToFile('D:/QBF1.TXT') ;

if Query1.Parameters.Count>0 then
begin
for i:=0 to OQuery1.Parameters.Count-1do
begin
if UpperCase(Query1.Parameters.Items.Name)='PRECCUR' then
begin
Query1.Parameters.Items.DataType:=ftCursor ;
//ftVariant
Query1.Parameters.Items.Direction:= pdinputOut ;
end;
end;
end;

try
Query1.Open;
except
ShowMessage('ssssssssssssssssssssssssssssssssssssssssss');
end ;
请高手帮忙!
 
Insert Into data1(t1,t2) values('aaa', '200607',szPH) ;
参数不足吧
 
后退
顶部