問題タブ [qsqldatabase]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - エラー: SIGABRT シグナルの意味: 中止されました" QT でデータベースに接続しようとすると
エラー:
オペレーティング システムから信号を受信したため、下位が停止しました。
シグナル名:SIGABRT シグナルの意味:中止
コードスニペット:
38 行... query->exec(sql);
c++ - PostgreSQL に serial 型の QSqlRecord を挿入する
Books Qt の例で作業していますが、SQLite の代わりに PostgreSQL を使用しているため、メイン テーブルと関連テーブルは次のコードで作成されました。
ここで、データベースに新しい行を追加したいと思います。これまでのところ、次のコードがあります。
そして、ここに問題があります。ご覧のとおり、id
が主キーで、そのタイプはserial
です。値を設定しない場合 (つまり行を削除する場合record.append(f0);
)、テーブルは PostgreSQL で適切に更新されますが、Qt は にある空白行を表示しTableView
ますMainWindow
。
QSqlField::setAutoValue
and で試しましQSqlField::setGenerated
たが、動作は同じです。QAbstractItemModel::setData
別のオプションになりますが、解決策でもありません。
レコードを挿入してからid
、データベースに保存されている最初のフィールドを更新することができましたが、この問題がバグなのか、API が正しいのか、問題は私が使用している方法なのか疑問に思っています。
qt - Sqlite データベースを読み取り専用にする方法は?
ユーザーがデータを編集できず、Qtアプリケーションのみが編集できるように、他のGUIアプリケーションで使用するときに読み取り専用にしたいsqliteデータベースがあります。
これが私のコードです:
c++ - QSqlDatabase::open() は常に true Qt 5.3.2 を返します
setDatabaseName
関数に設定したパラメーターとは関係なく、関数open
は常に true を返します。それは正常ですか?
例えば:
次のコードを実行した場合:
open 関数は true を返します。
私が期待しているのは、データベースに正常に接続された場合にのみ open 関数が true を返すことです。
すでにいくつかのトピックを見つけましたが、問題を解決したものはありません:
Qt 5.5 QSqlDatabase::open() は常に true を返しますか?
QSqlDatabase::open() は常に true を返します
QSqlDatabase open は、更新後に常に true を返します
SQLite と Qt 5.3.2 を使用しています。