問題タブ [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.

0 投票する
0 に答える
850 参照

c++ - エラー: SIGABRT シグナルの意味: 中止されました" QT でデータベースに接続しようとすると

エラー:

オペレーティング システムから信号を受信したため、下位が停止しました。

シグナル名:SIGABRT シグナルの意味:中止

コードスニペット:

38 行... query->exec(sql);

0 投票する
0 に答える
275 参照

c++ - PostgreSQL に serial 型の QSqlRecord を挿入する

Books Qt の例で作業していますが、SQLite の代わりに PostgreSQL を使用しているため、メイン テーブルと関連テーブルは次のコードで作成されました。

ここで、データベースに新しい行を追加したいと思います。これまでのところ、次のコードがあります。

そして、ここに問題があります。ご覧のとおり、idが主キーで、そのタイプはserialです。値を設定しない場合 (つまり行を削除する場合record.append(f0);)、テーブルは PostgreSQL で適切に更新されますが、Qt は にある空白行を表示しTableViewますMainWindow

QSqlField::setAutoValueand で試しましQSqlField::setGeneratedたが、動作は同じです。QAbstractItemModel::setData別のオプションになりますが、解決策でもありません。

レコードを挿入してからid、データベースに保存されている最初のフィールドを更新することができましたが、この問題がバグなのか、API が正しいのか、問題は私が使用している方法なのか疑問に思っています。

0 投票する
1 に答える
1138 参照

qt - Sqlite データベースを読み取り専用にする方法は?

ユーザーがデータを編集できず、Qtアプリケーションのみが編集できるように、他のGUIアプリケーションで使用するときに読み取り専用にしたいsqliteデータベースがあります。

これが私のコードです:

0 投票する
1 に答える
234 参照

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 を使用しています。