MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
Qtの基礎 - データベースのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
Qtの基礎 - データベース
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == <br><br> == SQLite3 == Qtを使用してSQLite3のテーブルにアクセスする場合、まず、<code>QSqlDatabase</code>クラスを使用してデータベースに接続する。<br> <syntaxhighlight lang="c++"> #include <QSqlDatabase> #include <QSqlQuery> // SQLiteデータベースに接続する QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); db.setDatabaseName("<SQLiteデータベース名>.sqlite"); // データベースファイル名 if (!db.open()) { qDebug() << "データベースに接続できませんでした。"; return; } </syntaxhighlight> <br> 次に、<code>QSqlQuery</code>クラスを使用してクエリを実行する。<br> 以下の例では、テーブルのデータを取得している。<br> <syntaxhighlight lang="c++"> QSqlQuery query; query.prepare("SELECT * FROM <SQLiteデータベースのテーブル名>"); if (query.exec()) { while (query.next()) { // レコードの処理 QString column1 = query.value(0).toString(); // 1番目の列 QString column2 = query.value(1).toString(); // 2番目の列 // 他の列も同様に取得できる } } else { qDebug() << "クエリの実行に失敗しました."; } // データベース接続を閉じる db.close(); </syntaxhighlight> <br><br> == SQLインジェクション対策 == SQLインジェクション対策では、プレースホルダを使用してクエリを構築することが重要である。<br> <br> 以下の例では、":username"がプレースホルダとなり、ユーザからの入力等が直接クエリに組み込まれることなく、安全にクエリが実行される。<br> また、ユーザからの入力をクエリに組み込む場合、入力データを適切にサニタイズしてクエリに含めるようにすることにより、悪意のあるSQLコードが挿入されても実行されないようにする。<br> <syntaxhighlight lang="c++"> QSqlQuery query; QString username = "user_input"; // ユーザからの入力等 // プレースホルダを使用して安全にクエリを構築 query.prepare("SELECT * FROM users WHERE username = :username"); query.bindValue(":username", username); if (query.exec()) { while (query.next()) { // レコードの処理 // ...略 } } else { qDebug() << "クエリの実行に失敗しました."; } </syntaxhighlight> <br><br> __FORCETOC__ [[カテゴリ:Qt]]
Qtの基礎 - データベース
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse