VC++6.0接続MySQL
3938 ワード
一、MySQLのインストール
mysql-5.5のインストールを考慮して、「完全インストール」(VCコンパイル時に必要なヘッダファイルなどをインストールする場合にのみ)を選択することに注意してください.インストール後にサーバ構成が行われ、サーバログインパスワードを設定したり、パスワードを設定したりすることができます.二、VC 6.0の設定
(1)VC 6を開く.0ツールバーToolsメニューの下にあるOptionsオプションで、Directoriesのラベルページの右側にある「Show directories for:」ドロップダウンリストから「Includefiles」を選択し、中間リストボックスにMySQLをローカルにインストールするincludeディレクトリパスを追加します.(私のはD:Program FilesMySQLMySQL Server 5.0includeです).
(2)上記の「Show directories for:」ドロップダウンリストで「Library files」を選択し、MySQLをローカルにインストールするLibディレクトリパスを追加します.Libディレクトリの下にはdebugとoptの2つのディレクトリがあります.debugを選択することをお勧めします.(私のはD:Program FilesMySQLMySQL Server 5.0libdebug)です.
(3)「プロジェクトsettings->Link:Object/library modules」に「libmysql.lib」を追加する.
(4)stdafx.hには以下の内容が追加されている.
(5)「libmySQL.lib、libmySQL.dll」を、あなたが構築したプロジェクトのディレクトリにコピーすることをお勧めします.
三、データベース、テーブルの作成
[スタート->すべてのプログラム->MySQL->MySQL->MySQL Server 5.0->MySQL Command Line Client.exe]を開き、パスワードを設定せずにそのまま戻ると、サーバの起動に成功するように求められます.
四、VCプログラミング
(1)追加機能の実現
(2)修正機能の実現
(3)削除機能の実現
(4)表の内容をCListCtrlコントロールm_に読み込むlist
(5)データベースを閉じる
mysql-5.5のインストールを考慮して、「完全インストール」(VCコンパイル時に必要なヘッダファイルなどをインストールする場合にのみ)を選択することに注意してください.インストール後にサーバ構成が行われ、サーバログインパスワードを設定したり、パスワードを設定したりすることができます.二、VC 6.0の設定
(1)VC 6を開く.0ツールバーToolsメニューの下にあるOptionsオプションで、Directoriesのラベルページの右側にある「Show directories for:」ドロップダウンリストから「Includefiles」を選択し、中間リストボックスにMySQLをローカルにインストールするincludeディレクトリパスを追加します.(私のはD:Program FilesMySQLMySQL Server 5.0includeです).
(2)上記の「Show directories for:」ドロップダウンリストで「Library files」を選択し、MySQLをローカルにインストールするLibディレクトリパスを追加します.Libディレクトリの下にはdebugとoptの2つのディレクトリがあります.debugを選択することをお勧めします.(私のはD:Program FilesMySQLMySQL Server 5.0libdebug)です.
(3)「プロジェクトsettings->Link:Object/library modules」に「libmysql.lib」を追加する.
(4)stdafx.hには以下の内容が追加されている.
#include "mysql.h"
#include "winsock.h" // , #include "mysql.h" #pragma comment(lib,"libmySQL.lib") // ,
(5)「libmySQL.lib、libmySQL.dll」を、あなたが構築したプロジェクトのディレクトリにコピーすることをお勧めします.
三、データベース、テーブルの作成
[スタート->すべてのプログラム->MySQL->MySQL->MySQL Server 5.0->MySQL Command Line Client.exe]を開き、パスワードを設定せずにそのまま戻ると、サーバの起動に成功するように求められます.
mysql> SHOW DATABASES;// , “;”
mysql> CREATE DATABASE mydb;// mydb
mysql> USE mydb;// mydb
mysql> SHOW TABLES; //
mysql> CREATE TABLE mytable (username VARCHAR(100), visitelist VARCHAR(200), remark VARCHAR(200));// mytable: ; ;
mysql> DESCRIBE mytable;//
四、VCプログラミング
MYSQL mysql; // MYSQL *conn = new MYSQL; MYSQL_RES *res = new MYSQL_RES; new
mysql_init (&mysql);
if(!mysql_real_connect(&mysql,"localhost","root",NULL,"mydb",3306,NULL,0)) {//mydb ,3306 ,
AfxMessageBox(" ");
return FALSE;
}
(1)追加機能の実現
CString strUsername,strList,strRemark,strSQL;
strSQL.Format("insert into mytable(username,visitelist,remark) values(\'%s\',\'%s\',\'%s\')", strUsername,strList,strRemark);// , \'\'
if(mysql_real_query(&mysql,(char*)(LPCTSTR)strSQL,(UINT)strSQL.GetLength())!=0){
AfxMessageBox(" ");
}
(2)修正機能の実現
CString strUsername,strList,strRemark,strSQL,str_PreName;//str_PreName ,
strSQL.Format("update mytable set username=\'%s\',visitelist=\'%s\', remark=\'%s\' where username=\'%s\'",strUsername,strList,strRemark,str_PreName);
if(mysql_real_query(&mysql,(char*)(LPCTSTR)strSQL,(UINT)strSQL.GetLength())!=0){
AfxMessageBox(" ");
}
(3)削除機能の実現
CString strSQL;
strSQL.Format("delete from mytable where username=\'%s\'",str_PreName);// \'\'
if(mysql_real_query(&mysql,(char*)(LPCTSTR)strSQL,(UINT)strSQL.GetLength())!=0){
AfxMessageBox(" ");
}
(4)表の内容をCListCtrlコントロールm_に読み込むlist
m_list.DeleteAllItems();
char *ch_query;
ch_query="select * from mytable";
if(mysql_real_query(&mysql,ch_query,(UINT)strlen(ch_query))!=0){
AfxMessageBox(" ");
}
CString str;
MYSQL_RES *result;
MYSQL_ROW row;
if(!(result=mysql_use_result(&mysql))){
AfxMessageBox(" ");
}
int i=0;
while(row=mysql_fetch_row(result)){
str.Format("%s",row[0]);
m_list.InsertItem(i,str);
str.Format("%s",row[1]);
m_list.SetItemText(i,1,str);
str.Format("%s",row[2]);
m_list.SetItemText(i,2,str);
i++;
}
mysql_free_result(result);
(5)データベースを閉じる
mysql_close(&mysql);// OnDestroy()