Microsoft SQLServerデータベースからnumeric(20,0)値を選択しようとしています。したがって、ODBCを介してMicrosoftSQLServerに接続します。SQLServer NativeClient10.0ドライバーを使用しています。
QTプロジェクトでデータを接続して選択する方法は次のとおりです。
db = QSqlDatabase::addDatabase("QODBC", "DBConnection");
db.open();
query.exec("SELECT * FROM TABLE")
while (query.next()) {
//Do something with query.value(0)
}
今の問題は、どのようなものQVariant
が返されるのquery.value()
かを見ると、ダブルであることがわかります。ただし、double値は、20桁ではなく、約16桁でのみ有効です。たとえば、selectでは、値は10903012224000000001である必要がありますが、10903012224000000000を取得します。
QTにどのタイプの値を返す必要があるかを伝える方法はありますか?正確な文字列値で十分です。
query.value(0).toXXX
double値で変換を開始するように見えるため、この方法は機能しません。
トピックについて:問題はにあると確信していQT
ます。Javaアプリケーションで同じODBCドライバーを使用すると、正しい値が返されます。