問題タブ [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.
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
qt - QSqlRelationalTable での複雑な外部キーの解決
QSqlRelationalModel を使用していますが、問題があります。
たとえば、次のような単純なテーブルを扱う場合:
次に、次のように記述できます。
これで問題なく動作し、ID の代わりに場所の名前が表示されます。
しかし、私の場合、このアプローチを適用することはできません。次のテーブルがあるとします。
Participant を QSqlRelationalTable として使用するとします。
そして、ビューに experience_id の代わりに Person.firstname を表示したい (また、編集機能を失いたくない)。これどうやってするの?
上記の例のように setRelation() を使用することはできません。
person_id の代わりに firstname を表示したいので、「person_id」と書くことができません。
c++ - QDataWidgetMapper と QDateEdit の値
私はいくつかのテーブルを持つ QSqlTableModel を持っています。
また、いくつかのウィジェット (線編集など) をモデルの適切な列にマップする QDataWidgetMapper もあります。
したがって、問題はQDateEdit
要素にあります。
birthEdit
( )内の日付を変更してもQDateEdit
、値は別の形式で保存されているため、実際には適切なテーブルで変更されず、エラーも発生します。
データベースの日付は「yyyy-MM-dd」に保存され、別の日付がQDateEdit
返されます(私はそう思います)。私の知る限りQDataWidgetMapper
、マップされたウィジェットで USER プロパティを使用して値を取得/設定します。
どうすれば問題を解決できますか?
qt - 変更後のQSqlRelationalModelモデル/ビューの更新
変更後のモデル/ビューの更新に問題があります。
私が言いたいことをよりよく説明するために、SQLite で簡単な例を書きました。
したがって、main.cpp ファイルは次のようになります。
MainForm.h ファイル:
バグについて... 外部キーを含むセルを編集した後、表示される値が間違っています。たとえば、部門の変更後は、文字列ではなく整数として表示されます。なんで?Qtのバグですか?
新しい行を追加した後、同じ問題が発生します。
c++ - ローカル QSqlQueryModel を照会する方法は?
モードで QSqlTableModel を表示していQSqlTableModel::OnManualSubmit
ます。
ローカル コピーで SQL スタイルのクエリを実行したいと考えています。たとえば、getMax
新しい行を追加すると変化する関数があります。QSqlTableModel
ユーザーがインタラクション中に をローカルで変更するgetMax
と、別の入力が生成されると予想されますが、代わりに、getMax
関数はリモートでデータをクエリし、ユーザーが行った変更に関係なく、結果は常に同じになります。
モデルのローカル コピーに対してクエリを実行するにはどうすればよいですか?
qt - Qt TableView の向きを変更する方法
こんにちは、QTableView を使用して、次のように qsqltablemodel を使用して SQL テーブルのデータを表示しています。
列が行として表示され、行が列として表示されるようなビューでテーブルを表示したいだけです。Googleなどで検索しましたが、簡単な解決策が見つかりません。プロキシ モデルについての言及がありますが、この例ではデータ メソッドを使用しない QSqltablemodel ではなく、モデル全体を一度に設定する model->select() ステートメントでそれを実装する方法がわかりません。任意のガイダンスをいただければ幸いです。
c++ - QSqlTableModel および DATETIME 列
をQTableView
使用してテーブルを表示していますQSqlTableModel
。そのテーブルには、DATETIME 列があります。行を追加してその列を編集しようとすると、単純な QEdit が表示されます。そこにQDateTimeEdit
(または類似の)フィールドを置きたいのですが、そのフィールドを正しく編集する方がはるかに簡単です。
私がドキュメントを理解したように、それはそれ自体で動作するはずです。デフォルトのデリゲートはQDateTime
a を処理して配置できるはずです。そのため、テーブルが空であるため、日付として認識されなかったQDateTimeEdit
と思います。QSqlTableModel
テキストだけでなく日付であることを指定する簡単な方法はありますか?
今のところデータベースとして SQlite を使用していますが、それが問題になるかどうかわかりません。QSqlTableModel::setTable
関連するコードをここに貼り付けることができるかどうかはわかりませんQTableView::setModel
。
python - QSqlTableModel が入力された QComboBox から選択項目データを取得する方法
sqlite3 データベース テーブルのデータが入力された基本的なコンボ ボックスがあります。
テーブル スキーマは次のとおりです。
これは空の dict を生成するだけ{}
です。QSqlTableModel から選択/現在のアイテムのデータ オブジェクトを取得するにはどうすればよいですか?