問題タブ [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 に答える
3919 参照

qtableview - QSQLTableModel継承者とQTableView

qmlを操作するためのQSQLTableModel継承を作成しましたが、うまく機能します。QTableViewでも使用する必要があります。データが表示されますが、変更できません。すべてを編集すると問題ありませんが、フィールドから出るとすべての変更が削除されます(editStrategyについては知っていますが、問題は以前に発生します)。仮想関数に何か問題があると思いますが、何が問題なのかはわかりません。同じパラメーターでQSqlTableModelを作成すると、すべて問題ありません。誰かがこれをどのように修正できるか考えていますか?私のコード:

h:

cpp:

UPD 問題はdataメソッドの数量詞constにあることを理解しました。これを削除すると、QTableViewですべて問題ありませんが、gmlのリストビューを使用してモデルからデータを取得できません。解決策は1つしかありません。QSqlTableModelからのinteritionを集約に置き換えますが、誰かがより良い解決策を知っているでしょうか。

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

c++ - QDataWidgetMapper は最初のインデックスのみを QSqlRelationalTableModel に更新します

QT フレームワークの一部に関して問題があります。私は QT 5.0.2 を使用しており、現在 Windows で開発しています。

私のアプリケーションでは、QSqlRelationalTableModel を使用して Tableview をセットアップしています。その隣には、リレーショナル テーブル モデルに接続されたテキスト フィールドと 3 つのコンボ ボックスがあります。ウィジェットは、次のように QDataWidgetMapper を使用してモデルにマップされます。

ご覧のとおり、SubmitPolicy は手動送信に設定されています。ウィジェットの下に、保存ボタンとリセット ボタンを含むボタンボックスがあります。

保存ボタンがクリックされると、私はこれを行います:

これにより、次の出力が作成されます。

これは、送信が成功し、エラーが報告されなかったことを意味します。

それにもかかわらず、モデルで更新されるのは最初のフィールドだけです。他のすべてのウィジェットは、それらの値を元のモデルの値にリセットします (モデルが datachanged を発行し、マッパーが自分自身を接続したためだと思います)。

マッピングの 1 つまたは 2 つを削除しようとしましたが、最初にマッピングが追加されたフィールドのみが常に更新されます。

submitPolicy を autoSubmit に変更すると、マッパーは意図したとおりに機能します。しかし、これらのリセットボタンと適用ボタンが必要であり、変更時にデータが送信されないようにする必要があります。

これはQTBug 1086の発生のようですが、そのバグは修正されており、コードからのバグ レポートから問題を再現することもできません。

あなたが私を助けてくれることを願っています。

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

sql - QSqlTableModel::insertRecordで行が挿入されたときに生成された主キーを取得する方法

この質問は、Postgres を使用する Windows 上の Qt 4.7.3 に関するものです。

を使用してかなり大きなテーブルに行を挿入しようとしてQSqlTableModelいます QSqlTableModel::setTable。モデルに を使用してレコード オブジェクトを要求し、QSqlRecord row(QSqlTableModel::record);を介してこれにデータを入力しQSqlRecord::setValueます。行を永続化するコードは次のとおりです。

上記は私が試したものですが、その内容はtableModel.query()巨大な選択であり、RETURNINGキーワードはありません。lastInsertId()無効な を返しますQVariant。データベースへの追加の-厄介な-ラウンドトリップを行わずに、Qtに生成された主キーを提供させることは可能ですか? 回避できるのであれば、最後のテーブルが実際に作成したものであることを確認するためにテーブルをロックしたくありません。

お知らせ下さい。

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

c++ - Qt QSqlDatabase および QSqlTableModel は PostgreSQL ビューと互換性がありますか?

PostgreSQL ビューで QSqlTableModel を使用すると問題が発生しました。ここでまず関連コードを示します。

ビューは、PostgreSQL 9.2.4 で実行される次のコードで作成されます。

Qt 4.4.0 を使用して VC2005 でコンパイルされた私の C++ コードは次のようになります。

メッセージ ボックスに「テーブル reports_spaces_edit が見つかりません」と表示されます。

データベース内のすべてのビューを見つけようとしました。次の行を追加しました。

結果のリストは次と同じです

PostgreSQL で実行している場合、QSqlTableModel で SQL ビューがサポートされていないということですか?

どうもありがとう!

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

sql - TableViewでデータが変更されたときにupdated_dateを保存する方法は?

QTableView で QSqlTableModel を使用しようとしていますが、updated_date と created_date の 2 つの列を簡単に非表示にしたいのですが、ユーザーが TableView でデータを編集できるようにしたいのですが、終了時 (またはそのデータを送信するとき)自動的に updated_date が現在の日時に更新されます。データベースエンジンからではなく、プログラムがそれを行う必要があります。これを行うには、どのような手順に従う必要がありますか? setData メソッドの実装を考えていますが、方法がわかりません。お時間をいただき、ありがとうございました。

0 投票する
3 に答える
154 参照

sql - SQL。「INSERT INTO Table VALUES(x1,x2,x3)」のようなことをしようとすると、x1 x2 x3 は SELECT <...> のような SQL クエリにできますか?

私はこのようなことをしたい:

しかし、それは機能していません。確かに、明らかにエラーがどこにあるのか、おそらく彼はそれを正しく行う方法を教えてくれます。