問題タブ [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.
python - PyQtモデルの複数の列で並べ替え
モデル/ビューベースのアプリケーションでPyQt
次のステートメントに相当するものを使用したいと思います。SQL
PyQt
QSqlTableModel
特にsetSort()
単一のcolumn
引数を受け入れるため、の複数の列で並べ替えるにはどうすればよいですか?
c++ - QSqlTableModel の追加の空の行
常に空の最後の行を追加しようとしています。これで、insertRow() を呼び出すプロキシ モデルができました。行が挿入されます。しかし、最後の行が更新される (データが挿入される) ときに、別の行を追加する必要があります。どの信号に接続すればよいですか?
奇妙なエラーが発生することがあります - 既存の行をクリックすると、データが最後の行にコピーされます。何が間違っている可能性がありますか?
手伝ってくれてありがとう
replace - QSqlTableModelで行を列に置き換える方法は?
SQLで行を列に変換する方法をたくさん見つけました。しかし、QSqlTableModel で行を列に変換する必要があります。私が理解しているように、それはそれほど難しい作業ではないはずですが、それを実現する方法がわかりません。おそらく、data()、setData() およびその他のいくつかのメソッドを再実装することができますが、何かを見逃してしまうのではないかと心配しています...
あるいは、QTableView のいくつかのメソッドを再実装する必要があるかもしれません。
c++ - QTableViewは外部キーを更新しませんか?
私はそれQMainWindow
に2つQTableViews
あります。それぞれQTableView
に独自のがありQSqlRelationalTableModel
ます。私はOnManualSubmit
両方のモデルの編集戦略として使用しています。両方のモデルが同じデータベースにヒットし、setTable
(それぞれが異なるテーブルにヒットする)を使用してデータが入力され、その後に。が続きselect()
ます。
setRelation
2番目のテーブルのモデルは、最初のモデルの作成に使用されたテーブルにリンクするための適切な呼び出しで設定されます。2番目の(子)ビューで、私はview->setItemDelegate(new QSqlRelationalDelegate(view));
すべてがうまく機能しているようです。最初のビューに表示されるデータは、2番目のビューの適切なフィールドのドロップダウンに一覧表示されます。
私の問題:最初の(親)ビューにレコードを追加、編集、または削除してデータベースに保存する場合、ドロップダウンが正確になるように2番目のビューを更新するにはどうすればよいですか?
2番目の(子)ビューに未保存の編集がある可能性があり、それらを失いたくないし、まだ保存したくない。ドロップダウンリストを適切に更新したいだけです。
試しchild_model->relationModel(fk_col)->select();
てみchild_model->relationModel(fk_col)->columnCount();
ましたが、動作しますが、selectが親テーブルのすべてのフィールドで動作していることを示しています。これは、不必要な悲観化のようです。
これは私の最初の使用の試み<QtSql>
でQTableView
あるため、基本的なものが欠けている可能性があります。おそらく、両方のビューに同じモデルを使用する方法があり、更新は自動的に行われますか?子ビューのドロップダウンを更新するための適切な方法は何ですか?
qt - QSqlRelationalTableModel列のプロパティと制約を設定/読み取る方法は?
の各列のプロパティと制約を確認する方法はありますQSqlRelationalTableModel
か? QSqlRelationalTableModel
たとえば、特定の列に null を含めることができるかどうか、またはその列で有効なデータ型をオブジェクトに尋ねたいとします。
c++ - QSqlRecord は、クエリでデフォルト値を持つ列を null に設定します
新しい QSqlRecord を Postgresql データベースに挿入する際に問題があります。ターゲット テーブルは次のように定義されます。
レコード挿入のコードは次のとおりです。
私がやりたいことは、新しいレコードを挿入し、SQL を設定することだけですが、 falsesamochod_id
に設定したにもかかわらず、次のメッセージでクラッシュします。isGenerated
QSqlRecord の生成をデータベースに残すにはどうすればよいsamochod_id
ですか?
sqlite - QT を使用する sqlite3 データベースのパフォーマンスを向上させる方法は?
sqlite3 データベースで QSQlQuery を使用しています。特定のアイテムを取得するために、4 つの異なるテーブルから結果を入力していました。テーブルを結合すると、パフォーマンス/速度が向上し、結果が速くなると思いました。最初は2つのテーブルを結合したのですが、結合後のデータ取得に時間がかかる(?)
パフォーマンスを改善する方法についての提案は本当にありがたいです。また、http://qt-project.org/doc/qt-4.8/qsqlquery.htmlを見ていましたが、 setForwardOnly を使用すると一部のデータベースでパフォーマンスが向上することが言及されています。それが SQLite3 で機能するかどうか、何か考えはありますか?
ありがとう!
qt - QTableView行に色を設定します
このメソッドを使用すると、QSQlQueryModelsをQTableviewsに設定できます。
しかし、セルの値に基づいて行に色を設定するにはどうすればよいですか?
c++ - QSql(Relational)TableModel のプリフェッチ/キャッシュ動作を無効にする
なんらかの (まあ、パフォーマンス上の) 理由で、Qt の「モデル」クラスはデータベースから 256 行しかフェッチしないため、行をレコードセットの最後に追加したい場合は、どうやら、次の行に沿って何かを行う必要があります。
これは機能し、後で行うmodel->insertRow(model->rowCount())
と、実際には、レコードセットの最後の行の後に行が追加されます。
この動作に関連する他のさまざまな問題があります。たとえば、モデルに行を挿入または削除すると、それをレンダリングするビューが再描画されて 256 行しか表示されず、欠落している行が再度フェッチされることを手動で確認する必要があります。
この動作を完全にバイパスする方法はありますか? 私のモデルは、たとえば 1000 行以上を表示する可能性はほとんどありませんが、それらの 1000 行を取得するのは王様の苦痛のようです。大規模なレコードセットを処理する必要がある場合、これは優れたパフォーマンスの最適化であることは理解していますが、私にとってはメリットではなく負担です。
モデルは書き込み可能である必要があるため、QSqlRelationalTableModel の代わりに QSqlQueryModel を単純に使用することはできません。