• 3923阅读
  • 0回复

Qt3调用存储过程不成功 [复制链接]

上一主题 下一主题
离线zel1996
 

只看楼主 倒序阅读 楼主  发表于: 2008-04-01
Qt3调用存储过程不成功
— 本帖被 XChinux 执行加亮操作(2008-04-01) —
我有一个存储过程
create or replace procedure UpdateWellState(v_wellState IN varchar2, v_remark IN varchar2) is
vCount Number(7);
begin
  select count(*) into vCount from wellstate;
  if vCount < 1
  then  insert into wellstate values( NULL, v_wellState, v_remark );
  else
        update wellstate set STATUS_CURRENT = v_wellState, REMARKS = v_remark;
  end if;
   
end UpdateWellState;

在pl/sql中测试是正确的。
用sqlplus 执行 exec updatewellstate( 'XXX', 'YYY' );成功;
在QT中
qsSql = "exec updatewellstate ?, ?";
    sqlQuery.prepare( qsSql );
    sqlQuery.bindValue( 0, "xxx" );
    sqlQuery.bindValue( 1, "yyy" );
    bool  b = sqlQuery.exec();
    qDebug( sqlQuery.lastError().text() );
    return b;
不成功;
qsSql = "exec updatewellstate (?, ?)";
    sqlQuery.prepare( qsSql );
    sqlQuery.bindValue( 0, "xxx" );
    sqlQuery.bindValue( 1, "yyy" );
    bool  b = sqlQuery.exec();
    qDebug( sqlQuery.lastError().text() );
    return b;
也不成功
qsSql = "call updatewellstate ?, ?";
    sqlQuery.prepare( qsSql );
    sqlQuery.bindValue( 0, "xxx" );
    sqlQuery.bindValue( 1, "yyy" );
    bool  b = sqlQuery.exec();
    qDebug( sqlQuery.lastError().text() );
    return b;
也不行
qsSql = "call updatewellstate (?, ?)";
    sqlQuery.prepare( qsSql );
    sqlQuery.bindValue( 0, "xxx" );
    sqlQuery.bindValue( 1, "yyy" );
    bool  b = sqlQuery.exec();
    qDebug( sqlQuery.lastError().text() );
    return b;
还是不行。请高手指教到底怎么调用oracle的存储过程
快速回复
限100 字节
 
上一个 下一个