問題タブ [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.
qtableview - QSQLTableModel継承者とQTableView
qmlを操作するためのQSQLTableModel継承を作成しましたが、うまく機能します。QTableViewでも使用する必要があります。データが表示されますが、変更できません。すべてを編集すると問題ありませんが、フィールドから出るとすべての変更が削除されます(editStrategyについては知っていますが、問題は以前に発生します)。仮想関数に何か問題があると思いますが、何が問題なのかはわかりません。同じパラメーターでQSqlTableModelを作成すると、すべて問題ありません。誰かがこれをどのように修正できるか考えていますか?私のコード:
h:
cpp:
UPD
問題はdata
メソッドの数量詞constにあることを理解しました。これを削除すると、QTableViewですべて問題ありませんが、gmlのリストビューを使用してモデルからデータを取得できません。解決策は1つしかありません。QSqlTableModelからのinteritionを集約に置き換えますが、誰かがより良い解決策を知っているでしょうか。
c++ - QDataWidgetMapper は最初のインデックスのみを QSqlRelationalTableModel に更新します
QT フレームワークの一部に関して問題があります。私は QT 5.0.2 を使用しており、現在 Windows で開発しています。
私のアプリケーションでは、QSqlRelationalTableModel を使用して Tableview をセットアップしています。その隣には、リレーショナル テーブル モデルに接続されたテキスト フィールドと 3 つのコンボ ボックスがあります。ウィジェットは、次のように QDataWidgetMapper を使用してモデルにマップされます。
ご覧のとおり、SubmitPolicy は手動送信に設定されています。ウィジェットの下に、保存ボタンとリセット ボタンを含むボタンボックスがあります。
保存ボタンがクリックされると、私はこれを行います:
これにより、次の出力が作成されます。
これは、送信が成功し、エラーが報告されなかったことを意味します。
それにもかかわらず、モデルで更新されるのは最初のフィールドだけです。他のすべてのウィジェットは、それらの値を元のモデルの値にリセットします (モデルが datachanged を発行し、マッパーが自分自身を接続したためだと思います)。
マッピングの 1 つまたは 2 つを削除しようとしましたが、最初にマッピングが追加されたフィールドのみが常に更新されます。
submitPolicy を autoSubmit に変更すると、マッパーは意図したとおりに機能します。しかし、これらのリセットボタンと適用ボタンが必要であり、変更時にデータが送信されないようにする必要があります。
これはQTBug 1086の発生のようですが、そのバグは修正されており、コードからのバグ レポートから問題を再現することもできません。
あなたが私を助けてくれることを願っています。
sql - QSqlTableModel::insertRecordで行が挿入されたときに生成された主キーを取得する方法
この質問は、Postgres を使用する Windows 上の Qt 4.7.3 に関するものです。
を使用してかなり大きなテーブルに行を挿入しようとしてQSqlTableModel
います QSqlTableModel::setTable
。モデルに を使用してレコード オブジェクトを要求し、QSqlRecord row(QSqlTableModel::record);
を介してこれにデータを入力しQSqlRecord::setValue
ます。行を永続化するコードは次のとおりです。
上記は私が試したものですが、その内容はtableModel.query()
巨大な選択であり、RETURNING
キーワードはありません。lastInsertId()
無効な を返しますQVariant
。データベースへの追加の-厄介な-ラウンドトリップを行わずに、Qtに生成された主キーを提供させることは可能ですか? 回避できるのであれば、最後のテーブルが実際に作成したものであることを確認するためにテーブルをロックしたくありません。
お知らせ下さい。
c++ - Qt QSqlDatabase および QSqlTableModel は PostgreSQL ビューと互換性がありますか?
PostgreSQL ビューで QSqlTableModel を使用すると問題が発生しました。ここでまず関連コードを示します。
ビューは、PostgreSQL 9.2.4 で実行される次のコードで作成されます。
Qt 4.4.0 を使用して VC2005 でコンパイルされた私の C++ コードは次のようになります。
メッセージ ボックスに「テーブル reports_spaces_edit が見つかりません」と表示されます。
データベース内のすべてのビューを見つけようとしました。次の行を追加しました。
結果のリストは次と同じです
PostgreSQL で実行している場合、QSqlTableModel で SQL ビューがサポートされていないということですか?
どうもありがとう!
sql - TableViewでデータが変更されたときにupdated_dateを保存する方法は?
QTableView で QSqlTableModel を使用しようとしていますが、updated_date と created_date の 2 つの列を簡単に非表示にしたいのですが、ユーザーが TableView でデータを編集できるようにしたいのですが、終了時 (またはそのデータを送信するとき)自動的に updated_date が現在の日時に更新されます。データベースエンジンからではなく、プログラムがそれを行う必要があります。これを行うには、どのような手順に従う必要がありますか? setData メソッドの実装を考えていますが、方法がわかりません。お時間をいただき、ありがとうございました。
sql - SQL。「INSERT INTO Table VALUES(x1,x2,x3)」のようなことをしようとすると、x1 x2 x3 は SELECT <...> のような SQL クエリにできますか?
私はこのようなことをしたい:
しかし、それは機能していません。確かに、明らかにエラーがどこにあるのか、おそらく彼はそれを正しく行う方法を教えてくれます。