問題タブ [qsqldatabase]
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.
database - 複数のデータベースに接続する QSqlDatabase
1 つの Qt アプリケーションで 2 つの異なるデータベースに接続しようとすると問題が発生します。アプリケーションによって収集されたすべての情報を格納する情報データベースと、リリース後の簡単なデバッグのために、アプリケーション、ボタンの押下、画面の読み込みなどに発生したすべての変更を追跡できる新しいログ データベースがあります。個別に、データベースは完全に機能しますが、両方を使用しようとすると、1 つしか機能しません。これは、接続に名前を付けていなかったためである可能性があり、明らかに最近接続されたデータベースのみがデフォルト接続を使用できることを読みました。ただし、データベースに名前を付けると、まったく機能しません.isOpen()は両方でtrueを返しますが、クエリを実行しようとするとすぐにエラーが発生します
私の2つのデータベース宣言は次のとおりです。
Logger データベース接続と :
また、データベースで最初のクエリを実行して、テーブルが存在するかどうかを確認するときに、使用しています
通常のデータベースでも同様ですが、クエリを実行するデータベース接続を宣言した後でも接続の問題が発生します。
アプリケーションに使用されるデータベースは、名前空間で静的な QSqlDatabase として宣言され、グローバルな効果を作成します。これにより、以前のプログラマーである誰もがアクセスできるようになり、プライベート データベース接続を使用してログ データベースをシングルトンとして作成しました。私が言ったように、コードの両方のバージョンは別々に動作しますが、それらが一緒になると、互いに戦っています。Singleton と Dependecy Injection の適切な設計については大きな議論があることは承知していますが、コードは個別に動作するので、現時点での設計に満足しています。不足している情報やアイデアがあれば教えてください。ありがとうございました。
c++ - QPSQL ドライバーがロードされていない Qt
データベースを追加したいときに困っています。
このメソッドを呼び出した後、エラーが発生しました:
PATH
次の変数パスに含めます。
sqldrivers
また、フォルダーをフォルダーにコピーしDebug
ます。また、このフォルダから dll を にコピーしようとしましたDebug
。どちらも機能しません。
c++ - QSqlDatabase の接続の違いは何ですか?
QSqlDatabase の多くのチュートリアルでは、次のようにデータベースを開始します。
これとは違うでしょうか:
またはこれ:
qt - Qt と QSqlDatabase を使用して切断後にデータベースに再接続する正しい方法
切断時にQt4を使用してデータベースに再接続する正しい方法は何ですか?
ODBC経由でSql Server 2012を使用しています。SELECT 1クエリを使用して切断を検出した場合
next() メソッドを使用しようとしている他の開いている SqlQueries (ドライバー内) で例外を受け取ります。
データベースで何もせず、同じデータベースを使用して新しいクエリを実行しようとすると、すべての exec() が false を返し、「接続エラー」という警告が表示されます。
mysql - データベースと接続の存続期間の管理
Qt では、データベースにアクセスできるようになるまでにいくつかの手順を完了する必要があります。
最初のステップは、接続名でデータベースを追加することです。
この後、 と を使用open()
しclose()
て、対応する接続を開閉できます。
そのデータベースは、次の呼び出しを使用して削除することもできます。
私のアプリケーションは、多くの目的で並列プロセスでさまざまなデータベースにアクセスするため、これを頻繁に行います。また、再起動せずに非常に長い時間実行されるサーバー アプリケーションです。
ネットワークの問題が発生する可能性があり、サーバー側の接続が制限されているため、接続を常に開いたままにしておくのは悪い考えであることは明らかです。
しかし、どうaddDatabase()
ですか?直後に呼び出さaddDatabase()
ずに呼び出すことに害や利点はありますか(ただし、アプリケーションの終了時のみ)? removeDatabase()
それとも、これらの呼び出しを常に直接ペアリングする方がよいでしょうか?
c++ - QLabel 内の SQL クエリの出力を表示する
QLabel内のSQLクエリの出力を表示する予定のqt guiアプリケーションを作成しています。
これで、QTableView モデル内の出力を作成するのは非常に簡単になり、それを使用して行うことができます。
QLabel内でこれを達成する方法についてのアイデア???
クエリの出力は 1 つのレコードになります。たとえば、世界で最も高い山の名前、またはエンガルドの首都の名前です。シングルレコードのみ。
c++ - sqlite データベース、qt 間でテーブルをコピーするとエラーが発生する
ユーザーがクリックすると、SQlite データベースの内容を別の SQlite データベースに書き込みたいと考えています。このために、私は2つのデータベースに接続し、1つのデータベースからクエリを選択し、トランザクションで別のデータベースにクエリを挿入しようとしています。しかし、接続の作成自体でエラーが発生します。
ヘッダー ファイル内:
ソースファイル内:
実行中に次のエラーが発生します。
QSqlDatabasePrivate::removeDatabase: 接続 'qt_sql_default_connection' はまだ使用中です。すべてのクエリが機能しなくなります。
QSqlDatabasePrivate::addDatabase: 重複する接続名 'qt_sql_default_connection'、古い接続が削除されました。
データベース接続のみを使用すると、エラーは発生しません。単一接続でコピーする方法がわかりません。
私の現在のコピーコードは次のとおりです。
pyqt - QSqlRelationalDelegate を使用した QSqlRelationalTableModel が QAbstractProxyModel の背後で機能しない
QSqlRelationalTableModel の行と列を交換する必要があります。たくさん検索した後、行と列を反転するための小さなプロキシモデルを書きました。
それは部分的に働いています。テーブル内の関係は解決されて表示されますが、それらを選択するためのドロップボックスが失われます。また、それらを更新するにはどうすればよいですか?
これは、動作を再現する小さな自己完結型スクリプトです。
私のエラーはどこですか?モデルのシグナルとスロットに関係があるのではないかと強く疑っていますが、どれをどのように再実装するかについてのヒントは見つかりませんでした。
行と列を交換する別の簡単な方法はありますか?
編集:委任モデルが完全に機能していないことを明確にするために、部分的に機能しているだけです。
c++ - QT5 を使用して ACCDB に接続する
私がやろうとしているのは、ディレクトリからすべての .db (Paradox) ファイルを見つけて、それらを .mdb に保存することです。問題は、これが適切に機能するかどうかを試すために、最初に ACCDB を開こうとしたことです (使用する .db と .mdb は、学校の内部ネットワークでのみ利用可能なリソースです)。
既に確認済みで、Qt ディレクトリに sql ドライバーが見つかりました。また、pro ファイルに QT +=sql を追加しました。アクセス データベース エンジンをインストールしました。VBA もインストールされていますが、接続を開くことができません。SQLITE データベースに接続して動作するかどうかはまだ試していませんが、動作すると思います。ボタンからトリガーされるコードは次のとおりです。
アイデアはありますか?? ありがとうございました!