Qt调用存储过程

//说明:对于有返回值的,传入参数必须赋值,也对于QString 不能为空 
//输入和输出都存在的
创建存储过程
CREATE OR REPLACE
PROCEDURE "MYTEST4" (str IN NUMBER,ostr OUT VARCHAR2)
AS
BEGIN
 -- routine body goes here, e.g.
 -- DBMS_OUTPUT.PUT_LINE('Navicat for Oracle');
--SELECT "ID" INTO str from TEST1 ;
SELECT "NAME" INTO ostr from TEST1 where id=str;
END;

QString sql = QString("call MYTEST4(:id)");
 QSqlQuery qureyxd(oraclejy);
 qureyxd.prepare(sql);
//说明:对于有返回值的,传入参数必须赋值,也对于QString 不能为空 
int p = 2;
 QString ppppp = "xx";   
 //qureyxd.addBindValue(1,QSql::In);
 //qureyxd.addBindValue("P",QSql:: Out);
 qureyxd.bindValue(":id",p,QSql::In);
 qureyxd.bindValue(":name",ppppp,QSql::Out);
 qureyxd.exec();
//返回值在下面的map中,其中的key是sql 中 placeholder参数的值 如 :   :id
 QMap tmp = qureyxd.boundValues ();

你可能感兴趣的:(Qt,sql,Qt)