I use the driver QODBC to connect to the database MS SQL Server. I execute a stored procedure. The stored procedure returns values through parameters. stored procedure always returns the empty string for parameters of type QString.
For example:
Qt Code:
  1. alter procedure [dbo].[fp_test]
  2. ( @Name varchar(50),
  3. @Value varchar(50) out,
  4. @Number int out
  5. )
  6. as
  7. set nocount on
  8. Select @Value='test', @Number=123
To copy to clipboard, switch view to plain text mode 

Qt Code:
  1. QSqlQuery query;
  2. //query.setForwardOnly(true);
  3. query.prepare("{CALL fp_test(?,?,?)}");
  4. query.addBindValue(strName);
  5. query.addBindValue(strValue,QSql::Out);
  6. query.addBindValue(n,QSql::Out);
  7. if (!query.exec())
  8. { QMessageBox::information(0, QObject::tr("Error"), "Error");
  9. return 1;
  10. }
  11.  
  12. strValue = query.boundValue(1).toString(); // "" :confused: - must be "test"
  13. n = query.boundValue(2).toInt();; // 123 - ok
To copy to clipboard, switch view to plain text mode