Qt は Access データベースを操作します

http://blog.csdn.net/xysq/article/details/3950722

Qt はデータベース アクセス用の QtSql モジュールを提供し、データベースと Qt アプリケーション プログラムのシームレスな統合を実現します。QtSql モジュールは、ドライバー プラグインを使用して、さまざまなデータベース インターフェイスと通信します。Qt には独自の QODBC ドライバーがあり、Ms Access、SQL Server などの Windows プラットフォームで提供される ODBC ドライバーを介して ODBC 対応データベースにアクセスします (Windows XP には、Access および SQL Server 用の ODBC ドライバーが付属しています)。以下では、QODBC を使用して Access データベースにアクセスします。

    QtSql モジュールを使用する前に、作業ファイル (.pro) に QT += sql を入力し、ヘッダー ファイルに #include <QtSql> を含める必要があります。

       QSqlDatabase は、データベースにアクセスするための接続インターフェースを提供します。接続を確立するには、QSqlDatabase のメンバー関数 addDatabase を呼び出す必要があります。

       QSqlDatabase addDatabase(const QString & type, const QString & connectionName = QLatin1String( defaultConnection ) )パラメータ タイプはドライバ名です。ここでは「QODBC」を使用します。2 番目のパラメータは接続名です。デフォルト値はデフォルト接続です。ここでは、接続名を「test」に設定します。ここで、同じ接続の接続名を使用すると、古い接続が新しい接続に置き換えられます。

     接続を作成したら、後で QSqlDatabase の静的関数データベースを使用して接続を取得できます。

  QSqlDatabase database ( const QString & connectionName = QLatin1String( defaultConnection ), bool open = true )、パラメーター defaultConnection はデータベース接続名です。ここでは上記の「test」を設定し、パラメーター open はデータベース接続を開くかどうかです。

   setDatabaseName ( const QString & name )関数、パラメーター名、QODBC ドライバーの場合、これはDSN ファイル名または接続文字列です。ここでは接続文字列を使用します:"DRIVER={Microsoft Access Driver (*.mdb)};FIL= {MS Access};DBQ=test.mdb", test.mdb は Access データ ファイルの名前です。

コードを使用して、test.mdb データベースにアクセスします。

 

//データベース接続を作成します
void MainWindow::connectDB()
{
//データベース接続があるかどうかを取得します
    QSqlDatabase dbconn = QSqlDatabase::database("test", false);
 
    if(dbconn.isValid())//if を終了します接続があります
    {
        return;
    }
   // "test" という名前のデータベース接続を作成します
dbconn = QSqlDatabase::addDatabase("QODBC", "test");
    QString dsn = QString("DRIVER={Microsoft Access Driver (*.mdb) ) };FIL={MS Access};DBQ=test.mdb");
    dbconn.setDatabaseName(dsn);
}
//データベース データのクエリ
void MainWindow::queryDB()
{ //
    接続名データベースの接続
    QSqlDatabaseを取得します「テスト」 dbconn = QSqlDatabase::  データベース(「テスト」、false);
    dbconn.open();
    QSqlQueryModel q;
    q.setQuery(tr("SELECT * FROM companyinfo"),dbconn);
}

おすすめ

転載: blog.csdn.net/Zhangchen9091/article/details/39609215