Pyqt-database-handling
PyQt-データベース処理
PyQt APIには、多くのSQLベースのデータベースと通信するための精巧なクラスシステムが含まれています。 そのQSqlDatabaseは、Connectionオブジェクトを介したアクセスを提供します。 以下は現在利用可能なSQLドライバのリストです-
Sr.No. | Driver Type & Description |
---|---|
1 |
QDB2 IBM DB2 |
2 |
QIBASE Borland InterBaseドライバー |
3 |
QMYSQL MySQLドライバー |
4 |
QOCI Oracle Call Interfaceドライバー |
5 |
QODBC ODBCドライバー(Microsoft SQL Serverを含む) |
6 |
QPSQL PostgreSQLドライバー |
7 |
QSQLITE SQLiteバージョン3以降 |
8 |
QSQLITE2 SQLiteバージョン2 |
例
SQLiteデータベースとの接続は、静的メソッドを使用して確立されます-
QSqlDatabaseクラスの他のメソッドは次のとおりです-
Sr.No. | Methods & Description |
---|---|
1 |
setDatabaseName() 接続が要求されるデータベースの名前を設定します |
2 |
setHostName() データベースがインストールされているホストの名前を設定します |
3 |
setUserName() 接続用のユーザー名を指定します |
4 |
setPassword() 接続オブジェクトのパスワードを設定します |
5 |
commit() トランザクションをコミットし、成功した場合はtrueを返します |
6 |
rollback() データベーストランザクションをロールバックします |
7 |
close() 接続を閉じます |
QSqlQueryクラスには、SQLコマンドを実行および操作する機能があります。 SQLクエリのDDLとDMLタイプの両方を実行できます。 クラスで最も重要なメソッドはexec_()です。これは、実行するSQLステートメントを含む文字列を引数として受け取ります。
次のスクリプトは、5人のレコードが入力されたsportspersonのテーブルを含むSQLiteデータベースsports.dbを作成します。
PyQtのQSqlTableModelクラスは、単一のテーブルでレコードを読み書きするための編集可能なデータモデルを提供する高レベルインターフェイスです。 このモデルは、QTableViewオブジェクトを作成するために使用されます。 ユーザーに、トップレベルのウィンドウに配置できるスクロール可能かつ編集可能なビューを提供します。
QTableModelオブジェクトは、次の方法で宣言されています-
その編集戦略は、次のいずれかに設定することができます-
QSqlTableModel.OnFieldChange | All changes will be applied immediately |
QSqlTableModel.OnRowChange | Changes will be applied when the user selects a different row |
QSqlTableModel.OnManualSubmit | All changes will be cached until either submitAll() or revertAll() is called |
例
次の例では、sportspersonテーブルがモデルとして使用され、戦略が次のように設定されています-
QTableViewクラスは、PyQtのModel/Viewフレームワークの一部です。 QTableViewオブジェクトは次のように作成されます-
このQTableViewオブジェクトと2つのQPushButtonウィジェットは、トップレベルのQDialogウィンドウに追加されます。 追加ボタンのClicked()シグナルは、モデルテーブルでinsertRow()を実行するaddrow()に接続されます。
削除ボタンに関連付けられたスロットは、ユーザーが選択した行を削除するラムダ関数を実行します。
完全なコードは次のとおりです-
上記のコードは、次の出力を生成します-