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字节,就不对。
  有没有哪位高人知道原因,能否解决这个问题 |