問題タブ [qtsql]
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.
c++ - c++ Qt で prepare() と bindvalue() の使用に行き詰まった
Qtアシスタントに基づいてSQLクエリを作成しましたが、prepare()
代わりにメソッドを使用できると書かれており、次の2つのメソッドをexec()
使用してパラメーターを渡すことができます。
bindvalue()
addbindvalue()
これが私の問題のスニペットコードです:
出力:
SELECT ID , Row , Col FROM sometable WHERE Row = ? AND 列 = ?
また、別の提案された方法を使用しました:
出力:
SELECT ID , Row , Col FROM sometable WHERE Row = ? AND 列 = ?
しかし、exec()
通常使用すると完全に機能し、「?」の代わりに対応する値を置き換えます。
それについての説明はありますか?または、通常の exec() を使用する必要がありますか?
c++ - Qt で SQLite を使用する
私が書いているC++アプリケーションのバックエンドDBとしてSQLiteを使用することを考えています。trolltech サイトと sqlite の両方で関連するドキュメントを読みましたが、情報が少しバラバラに見えます。完全な CRUD の例を示す単純なスニペットはありません。
アプリから SQLite で CRUD アクションを簡単に実行できるようにする一連のヘルパー関数を作成したいと考えています。
次のスミペットは、私が想定しているヘルパー関数の擬似コードです。スタブ関数を「埋める」方法についての提案に感謝します。特にイライラすることの1つは、クエリとクエリが実行されているデータベースとの関係について、どのドキュメントにも明確な言及がないことです-したがって、ある種のデフォルトの接続/テーブルを示唆しています.
私のアプリケーションでは、クエリが実行されるデータベースを明示的に指定できるようにする必要があるため、クエリに含まれるデータベース/テーブルを明示的に指定する方法 (またはその他のデータベース アクション) を回答で詳しく説明すると便利です。 )。
私の疑似コードは以下のとおりです。
私が尋ねていることが明確でない場合は、上記の各機能を実装するための正しいワットは何かを尋ねています (おそらく最初の機能を除いて - もちろん改善できない場合を除きます)。
[編集]
テーブルを明示的に指定する要件を削除することで質問を明確にしました (これは SQL クエリで既に行われています - 忘れていました。Tom を指摘してくれてありがとう
c++ - QSqlQuery UPDATE/INSERT DateTime with server's time (eg CURRENT_TIMESTAMP)
I am using QSqlQuery to insert data into a MySQL database. Currently all I care about is getting this to work with MySQL, but ideally I'd like to keep this as platform-independent as possible.
What I'm after, in the context of MySQL, is to end up with code that effectively executes something like the following query:
The following code is what I have attempted, but it fails:
The error I get is: Incorrect datetime value: 'CURRENT_TIMESTAMP()' for column 'time_field' at row 1 QMYSQL3: Unable to execute statement
. I am not surprised as I assume Qt is doing some type checking when it binds values.
I have dug through the Qt documentation as well as I know how, but I can't find anything in the API designed specifically for supporting MySQL's CURRENT_TIMESTAMP() function, or that of any other DBMS.
Any suggestions?
sql - 値が SQL クエリに依存するチェック制約を持つテーブルを作成できますか
値が別のSQLクエリによって与えられた結果セット内にある列の1つにチェック制約を持つテーブルを作成することは可能ですか?
例えば。
またはそのようなもの。
どこでも使用する必要はありませんが、それでも知りたいです。
c++ - QSqlTableModelを使用して、特定の複合主キーのQModelIndexを見つけるにはどうすればよいですか?
私はこのテーブルを持っています:
QModelIndex
たとえば、特定の複合主キーを見つけるにはどうすればよいですか。
c++ - データベースの検索に使用される別の QSqlQuery から QModelIndex を取得する方法 (見つかったアイテムを選択するために必要)
QSqlQueryModel を扱うときに問題があります。データベースでいくつかのアイテムを検索し、QModelIndex を必要とする QItemSelectionModel を使用して QTableView でそれらを選択したいと考えています。
私が理解していないのは、モデル/ビュー アーキテクチャに対応する QModelIndex を取得するために検索する方法です。ビューに表示されるアイテムが台無しになるため、モデル自体を使用することはできません。したがって、QSqlQuery または追加の QSqlQueryModel がオプションになる可能性がありますが、結果インデックス (.at()?) からモデル/ビュー システムに適合する QModelIndex に変換するにはどうすればよいでしょうか...
前もって感謝します!
qt - 元の QSqlQueryModel を変更せずに、SELECT クエリ (QSqlQuery) で見つかった行の QModelIndex を取得する方法
すでに質問しましたが、誤解されていたので、問題を正確に説明しようとします。
QSqlQueryModel
SQLite データベースからのデータを表示するために を使用していますQTableView
。
ここで、「検索/検索/置換」ダイアログを実装したいので、追加で作成された でデータベースを検索しQSqlQuery
、レコードを見つけたとしましょう。
QSqlQuery
では、extra のこの見つかったレコードからモデル/ビュー アーキテクチャに移動するにはどうすればよいでしょうか?
問題は、見つかったレコードを強調表示したいのでQItemSelectionModel
、特定の をロードする必要があることQModelIndex
です。
しかし、これを行う方法がわかりません。おそらく私の計画は不可能であり、データベース モデルでテキストを検索し、QTableView
.
QSqlQuery
、QSqlQueryModel
、のドキュメントは既に知っているQModelIndex
ので、これらのページだけを参照しないでください。あまり役に立ちません。
ありがとう!
PS: まだ回答されていない関連する質問もあります。
qt - sqlite3ドライバーを使用したQSqlQueryの複数のSQLステートメント
新しいsqlite3データベースファイルを初期化するために使用したいいくつかのSQLステートメントを含むファイルがあります。どうやら、 sqlite3は関数を介してではなく、関数を介して1つのクエリで複数のステートメントのみを処理し ます。それはすべて問題ありませんが、capiではなくQtSQLapiを直接使用したいと思います。QSqlQueryを介して同じ初期化ファイルをロードすると、sqlite3apiからprepare/step / finalize関数を直接使用するのと同じように、最初のステートメントのみが実行されます。ステートメントごとにquery.exec()を個別に呼び出すことなく、QSqlQueryで複数のクエリを実行する方法はありますか?sqlite3_exec()
prepare/step/finalize
python - QSqlTalbeModel の問題。テーブルが表示されていません
テーブル ビューに割り当てられた QsqlTableModel があります。私の問題は、テーブルビュー内のテーブルにデータが入力されないことです。それはまだ空で、(テーブル ショットが見つかりません) と表示されます - lastError.text() を印刷するとき -
関数 retrieveShotResults..(以下のコードを確認) は、shots というテーブルがあるかどうかをテストし、はい、すべてを正常に印刷します。接続も問題ありません..しかし、テーブルビューはまだ空です。私は何か間違っていますか?
助けてくださいよろしくお願い
し
ます
class SqlModel(QtSql.QSqlTableModel):
qt - Qt に QMYSQL ドライバーを認識させる方法
Qt アプリケーションから MySql データベースにアクセスしようとしていますが、次のエラーが発生します。
Qtフォルダーにlibqsqlmysql.soがあるという非常に奇妙な原因を見つけました。MySql ドライバーを静的プラグインとしてコンパイルし、次のように .pro ファイルに追加しようとしました。
しかし、これも同じ実行時エラーを生成します (アプリケーションのコンパイルにエラーがないため、プラグインが見つかったに違いありません)。
私は何が欠けていますか?ソースから Qt をコンパイルする必要は避けたいと思います。これは、デプロイ マシンでもシームレスに動作する必要があるためです。
ところで: 私は Linux で開発とテストを行っていますが、Windows をサポートする必要があります。Windows でも同じ問題が発生しますか? Linux と Windows の両方で MySql ドライバーをコンパイルしてリンクするにはどうすればよいですか?
ソリューション:
@Sergeyの推奨事項に従った後、出力をgrepにリダイレクトするアプリケーションのstraceを行ったので、「mysql」を検索できました。驚いたことに、アプリケーションは、libqsqlmysql.soがあったQTDIR/plugins/sqldriversでプラグインを探していませんでした、QTDIR/libを見ていました。プラグインを lib フォルダーにコピーした後、MySql 接続が機能しました。