問題タブ [qsqltablemodel]

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 投票する
1 に答える
2882 参照

qt - QSqlTableModel::setData() に関連付けられた実行済み SQL ステートメントを取得する方法は?

QSqlTableModelメソッドsetDataを使用submitAllして、Qt アプリケーションからデータベース テーブルを挿入/更新していますcommit。ロギングのために、対応する SQL ステートメントを記録する必要があります。どうやってやるの?(私は見てQSqlTableModel::query()いますが、SELECTのみを返すようです)

これが私がやっていることの簡略化されたバージョンです。

更新または挿入を行った場合でも、最後の行には常に SELECT が出力されます。


アップデート

以下は、自己完結型のコード スニペットです。セットアップは、私は と を備えた UI を持っているというQTableViewことQPushButtonです。clicked()押しボタンの信号がaddNewRow()スロットに取り込まれ、任意の値が最初のセルに挿入されます。lastQuery()挿入ステートメントであると予想される結果を出力していますが、これは指定されたテーブルの SELECT ステートメントです。私は何を間違っていますか?

main.cpp

test1.h

test1.cpp

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

qt - QSqlRelationalTable での複雑な外部キーの解決

QSqlRelationalModel を使用していますが、問題があります。

たとえば、次のような単純なテーブルを扱う場合:

次に、次のように記述できます。

これで問題なく動作し、ID の代わりに場所の名前が表示されます。

しかし、私の場合、このアプローチを適用することはできません。次のテーブルがあるとします。

Participant を QSqlRelationalTable として使用するとします。

そして、ビューに experience_id の代わりに Person.firstname を表示したい (また、編集機能を失いたくない)。これどうやってするの?

上記の例のように setRelation() を使用することはできません。

person_id の代わりに firstname を表示したいので、「person_id」と書くことができません。

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

c++ - QDataWidgetMapper と QDateEdit の値

私はいくつかのテーブルを持つ QSqlTableModel を持っています。

また、いくつかのウィジェット (線編集など) をモデルの適切な列にマップする QDataWidgetMapper もあります。
したがって、問題はQDateEdit要素にあります。

birthEdit( )内の日付を変更してもQDateEdit、値は別の形式で保存されているため、実際には適切なテーブルで変更されず、エラーも発生します。

データベースの日付は「yyyy-MM-dd」に保存され、別の日付がQDateEdit返されます(私はそう思います)。私の知る限りQDataWidgetMapper、マップされたウィジェットで USER プロパティを使用して値を取得/設定します。

どうすれば問題を解決できますか?

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

qt - 変更後のQSqlRelationalModelモデル/ビューの更新

変更後のモデル/ビューの更新に問題があります。

私が言いたいことをよりよく説明するために、SQLite で簡単な例を書きました。

したがって、main.cpp ファイルは次のようになります。

MainForm.h ファイル:

バグについて... 外部キーを含むセルを編集した後、表示される値が間違っています。たとえば、部門の変更後は、文字列ではなく整数として表示されます。なんで?Qtのバグですか?

新しい行を追加した後、同じ問題が発生します。

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

c++ - ローカル QSqlQueryModel を照会する方法は?

モードで QSqlTableModel を表示していQSqlTableModel::OnManualSubmitます。

ローカル コピーで SQL スタイルのクエリを実行したいと考えています。たとえば、getMax新しい行を追加すると変化する関数があります。QSqlTableModelユーザーがインタラクション中に をローカルで変更するgetMaxと、別の入力が生成されると予想されますが、代わりに、getMax関数はリモートでデータをクエリし、ユーザーが行った変更に関係なく、結果は常に同じになります。

モデルのローカル コピーに対してクエリを実行するにはどうすればよいですか?

0 投票する
2 に答える
2470 参照

qt - Qt TableView の向きを変更する方法

こんにちは、QTableView を使用して、次のように qsqltablemodel を使用して SQL テーブルのデータを表示しています。

列が行として表示され、行が列として表示されるようなビューでテーブルを表示したいだけです。Googleなどで検索しましたが、簡単な解決策が見つかりません。プロキシ モデルについての言及がありますが、この例ではデータ メソッドを使用しない QSqltablemodel ではなく、モデル全体を一度に設定する model->select() ステートメントでそれを実装する方法がわかりません。任意のガイダンスをいただければ幸いです。

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

qt - SubmitAll() が QSqlRelationalTableModel で失敗する

0 投票する
2 に答える
1792 参照

c++ - QSqlTableModel および DATETIME 列

QTableView使用してテーブルを表示していますQSqlTableModel。そのテーブルには、DATETIME 列があります。行を追加してその列を編集しようとすると、単純な QEdit が表示されます。そこにQDateTimeEdit(または類似の)フィールドを置きたいのですが、そのフィールドを正しく編集する方がはるかに簡単です。

私がドキュメントを理解したように、それはそれ自体で動作するはずです。デフォルトのデリゲートはQDateTimea を処理して配置できるはずです。そのため、テーブルが空であるため、日付として認識されなかったQDateTimeEditと思います。QSqlTableModelテキストだけでなく日付であることを指定する簡単な方法はありますか?

今のところデータベースとして SQlite を使用していますが、それが問題になるかどうかわかりません。QSqlTableModel::setTable関連するコードをここに貼り付けることができるかどうかはわかりませんQTableView::setModel

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

python - QSqlTableModel が入力された QComboBox から選択項目データを取得する方法

sqlite3 データベース テーブルのデータが入力された基本的なコンボ ボックスがあります。

テーブル スキーマは次のとおりです。

これは空の dict を生成するだけ{}です。QSqlTableModel から選択/現在のアイテムのデータ オブジェクトを取得するにはどうすればよいですか?