Visual C ++でのMySQLの接続と操作

最近では、筋肉を使ってリモートで作業するためのプログラムを作成する必要がありました。 インターネット上では、それは恥ずべきことではなく、「何とか何とかダウンロードし、includeを介して接続します。これが例です!」 実際には、うまくいきませんでした。説明する専門家を探す必要がありました。 この厄介な情報不足を修正するために、Visual C ++環境でのセットアップと作業に関する「A」から「Z」までの完全な説明をレイアウトします。 それでは始めましょう!



このようにして、Visual C ++ 2008および2010をセットアップしました。異なるバージョンのビジュアルカードのインターフェイスに特別な違いはないため、設定はほとんど同じです。



マッスルなどのデータベースを接続し、純粋なAPIでそれを操作するには、最初にデータベースをインストールするか、そのようなソフトウェアをインストールする必要があります。

1. 32ビットアプリケーション、32ビットライブラリセット、および64ビットそれぞれ64ビットセットの「Connector / C ++」( http://dev.mysql.com/downloads/connector/cppからダウンロードできます) / )。

2.マッスルディストリビューション。MySQLCommunity Server 5.1.59をインストールするときに、完全インストールを選択するか、自分でセット全体を選択する必要があります。開発には、DevCppセットで十分です。



これで、Visual C ++でプログラムを作成するために必要なすべてのライブラリが用意されました。 次に、マッスルサーバーディレクトリの構造を確認します。 私のサーバーはD:\ programming \ MySQL Server 5.1にインストールされています 。 ディレクトリは任意ですが、includeおよびlibフォルダーが存在する必要があります。 次に、すべてのファイルをC:\ Program Files \ MySQL \ MySQL Connector C ++ 1.1.0 \ lib \ opt (コネクタがインストールされているフォルダー)からD:\ programming \ MySQL Server 5.1 \ lib \ opt (サーバーが含まれるフォルダー)にコピーします。



ファイル転送は終了しました。C++自体を構成します。

1. Visual C ++を開き、標準コンソールプロジェクトを作成し、便利な場所に保存します。

2. リリースプロジェクトの構築モードを選択してください(!!!)。 標準のDebugを選択した場合、他のディレクトリにファイルを保存する必要があります。

3.プロジェクトのプロパティを開きます(決定ブラウザウィンドウで、プロジェクトを右クリックします-プロパティ)。

4. [構成プロパティ-C / C ++-全般-インクルードファイルの追加ディレクトリ]を選択し、サーバーフォルダーからインクルードディレクトリを追加します(私の場合はD:\ programming \ MySQL Server 5.1 \ include )。

6.プロジェクトのプロパティで、「構成プロパティ-C / C ++-リンカ-一般-追加ライブラリディレクトリ」を選択しlib / optディレクトリを追加します (私の場合、 D:\ programming \ MySQL Server 5.1 \ lib \ opt )。

7.プロジェクトのプロパティで、「構成プロパティ-C / C ++-リンカ-入力-追加の依存関係」項目を選択し、2つの値mysqlcppconn-static.libおよびlibmysql.libを追加します。

8.プロジェクトのプロパティで、「構成プロパティ-C / C ++-プリプロセッサ-プリプロセッサ定義」項目を選択し、値CPPCONN_PUBLIC_FUNC =を追加します。

9.プロジェクトのプロパティを保存します。



さらに、残っているのは#include <mysql.h>プロジェクトに追加するだけです。



筋肉を扱う2つの簡単な例を次に示します。



データベースへの接続をテストする

#include "stdafx.h"

#include <iostream.h>

#include <conio.h>

#include <stdlib.h>

#include <mysql.h>

#include<stdio.h>



using namespace std;



int _tmain(int argc, _TCHAR* argv[])

{

MYSQL *conn;

//

conn = mysql_init(NULL);

if(conn == NULL)

{

// –

fprintf(stderr, "Error: can'tcreate MySQL-descriptor\n");

//exit(1); //

}

//

if(!mysql_real_connect(conn, "localhost", "root", "root", "test", NULL, NULL, 0))

{

//

//

fprintf(stderr, "Error: can'tconnecttodatabase %s\n", mysql_error(conn));

}

else

{

// - "Success!"

fprintf(stdout, "Success!\n");

}

//

mysql_close(conn);



system("Pause");

return 0;

}








テーブルのデータを表示する

#include"stdafx.h"

#include<iostream.h>

#include<conio.h>

#include<stdlib.h>

#include<stdio.h>

#include<mysql.h>



usingnamespacestd;



int_tmain(intargc, _TCHAR* argv[])

{



system("cls");



MYSQL *conn;

MYSQL_RES *res;

MYSQL_ROW row;



int i = 0;



//

conn = mysql_init(NULL);

if(conn == NULL)

{

// –

fprintf(stderr, "Error: can'tcreate MySQL-descriptor\n");

//exit(1); //

}

//

if(!mysql_real_connect(conn, "localhost", "root", "root", "test", NULL, NULL, 0))

{

//

//

fprintf(stderr, "Error: can'tconnecttodatabase %s\n", mysql_error(conn));

}

else

{

// - "Success!"

fprintf(stdout, "Success!\n");

}



mysql_set_character_set(conn, "utf8");

// , latin1

cout<<"connectioncharacterset: "<<mysql_character_set_name(conn) <<endl;



mysql_query(conn,"SELECT id, text FROM mnu"); // =)



if (res = mysql_store_result(conn)){

while(row = mysql_fetch_row(res)) {

for (i=0 ; i <mysql_num_fields(res); i++){

std::cout<<row[i] <<"\n"; //

}

}

} elsefprintf(stderr, "%s\n", mysql_error(conn));



//

mysql_close(conn);



system("Pause");



return 0;

}








PSトピックを明確にしてくれたウラジミール・ブディロのおかげで、この記事は彼の説明のおかげで出てきました。



All Articles