C++ で SQL Server データベースに接続の方法

SQL ServerデータベースにC++で接続するには、データベースとのやり取りに適したライブラリを使用する必要があります。以下にODBC (Open Database Connectivity) ライブラリを使用してSQL Serverデータベースに接続する手順を示します。

ODBC ドライバーのインストール: まず、SQL Server の ODBC ドライバーがインストールされていることを確認します。使用しているオペレーティングシステムと SQL Server のバージョンに応じて、対応する ODBC ドライバーをダウンロードしてインストールします。

必要なヘッダのインクルード: C++のコードでは、ヘッダファイルとをインクルードする必要があります。

ODBC環境の初期化: データベースに接続する前に、ODBC環境を初期化する必要があります。このためには関数SQLAllocHandleを使用できます。

SQLHENV henv;  // 环境句柄
SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv);  // 初始化ODBC环境

4. ODBC バージョンの設定 ODBC のバージョン設定を行い、通常は ODBC 3.x 系を使用します。SQLSetEnvAttr 関数によって設定が可能です。

SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0);

5. SQLServer データベースに接続:データベースに接続するには、関数SQLConnect を使用します。サーバー名、データベース名、ユーザー名、パスワードなどのデータベース接続情報を提供します

SQLHDBC hdbc;  // 连接句柄
SQLCHAR* szServer = (SQLCHAR*)"server_name";
SQLCHAR* szDatabase = (SQLCHAR*)"database_name";
SQLCHAR* szUsername = (SQLCHAR*)"username";
SQLCHAR* szPassword = (SQLCHAR*)"password";
SQLConnect(hdbc, szServer, SQL_NTS, szUsername, SQL_NTS, szPassword, SQL_NTS);

SQLステートメントの実行: 接続が成功したら、`SQLExecDirect`関数でSQLステートメントを実行できます。引数にSQLクエリまたは操作ステートメントを指定します。

SQLHSTMT hstmt;  // 语句句柄
SQLCHAR* szSqlQuery = (SQLCHAR*)"SELECT * FROM table_name";
SQLExecDirect(hstmt, szSqlQuery, SQL_NTS);

7. 処理結果:クエリ結果のタイプと要求内容に応じて、データベースから戻されるデータを処理するために適切な関数を使用できます。

接続を終了しリソースを開放することを忘れないでください。

SQLDisconnect(hdbc);  // 断开数据库连接
SQLFreeHandle(SQL_HANDLE_DBC, hdbc);  // 释放连接句柄
SQLFreeHandle(SQL_HANDLE_ENV, henv);  // 释放环境句柄

なお、上記のサンプルはあくまで基本的なものであり、実際には、具体的な状況に応じて、設定やエラー処理が必要になる場合があります。また、ADO.NETやODBC、MFCなど、他にもC++データベースアクセスライブラリがありますので、ご自身のニーズに合わせて、適切なライブラリを選択して、データベース接続を行ってください。

bannerAds