1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
| ALTER PROCEDURE [dbo].[GetBasicTypeID] @CellID NVARCHAR(20), -- cell ID @TypeName NVARCHAR(40) OUTPUT -- type name QSqlQuery *pQry = ...... pQry->clear(); pQry->prepare("exec GetBasicTypeID ?, ? output"); QString str = "A236687"; pQry->bindValue(0, str); pQry->bindValue(1, 0, QSql::Out); bool bFlag = pQry->exec();
QVariant var = pQry->boundValue(1); QString strResult = var.toString(); 发现strResult不是预期值
如果存储过程返回字段是整数,可以正常返回 ALTER PROCEDURE [dbo].[GetBasicTypeID_Test_Int] @CellID NVARCHAR(20), -- cell ID @TypeName INT OUTPUT -- type name QVariant var = pQry->boundValue(1); int iResult = var.toInt(); 后来还试了double类型,发现如果数值不超过int范围,能正确得到值,超过了,就不对了。 也试了qlonglong,发现也一样,不超过int范围,能正确得到值,超过了,就不对了。 就是返回值超过4字节,就不对。
有没有哪位高人知道原因,能否解决这个问题 |