当前位置:编程学习 > wap >>

Qt调用多参数的存储过程怎么实现?


[sp_insertZone] ?,?,?,?,? output,? output

像这样的写法会报sql的语法错误
如果输出参数只有一个且放置在最后位置就没错
QODBCResult::exec: Unable to execute statement: "[Microsoft][ODBC SQL Server Driver][SQL Server]'?' 附近有语法错误。 [Microsoft][ODBC SQL Server Driver][SQL Server]无法预定义语句。 [Microsoft][ODBC SQL Server Driver]没有提供需要的指示器变量 [Microsoft][ODBC SQL Server Driver]没有提供需要的指示器变量 --------------------编程问答-------------------- 写的是啥
乱码
--------------------编程问答--------------------
引用 1 楼 openXMPP 的回复:
写的是啥
乱码

我是这样调用存储过程

#define OutParas QMap<int, QVariant>

QString procname_para_insert = "[sp_insertTest] ?,?,?,?,? output,? output";
SqlHelper sqlh(dsn);
sqlh.Connect();

//这一句执行存储过程返回输出参数列表
OutParas outs = sqlh.ProcedureParas(procname_para_insert,paraList);

//调用的这个
OutParas SqlHelper::ProcedureParas(QString &procName, QList<SqlPara> paras)
{
    db.open();

    QSqlQuery query = QSqlQuery(db);
    QString sql = QString("exec ") + QString(procName);
    query.prepare(sql);

    qDebug()<<sql<<endl;

    QList<SqlPara>::iterator para_it;

    for(para_it=paras.begin(); para_it!=paras.end(); para_it++)
    {
        SqlPara para = *para_it;
        query.bindValue(para.pos, para.value, para.type);
    }

    query.exec();

    OutParas outs = GetOutList(query, paras);

    last_error = query.lastError();
    db.close();
    return outs;
}
补充:移动开发 ,  Qt
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,