(調試此Demo需要將目錄裡的mydb子目錄拷到MySQL安裝目錄的data子目錄下(我的是:D:\Program Files\MySQL\MySQL Server 5.0\data)
摘要:本文詳細闡述了如何進行MySQL的安裝、調試,以及如何用VC進行編譯,實現數據的“添加、修改、刪除”等功能。
一、MySQL的安裝
可以考慮安裝mysql-5.0.41-win32,當然你有更新的版本更好,注意選擇“完全安裝”(只有這樣才會安裝VC編譯時需要的頭文件等)。安裝後期會進行服務器配置,你可以設置你的服務器登陸密碼,也可以不設置密碼。
二、VC6.0的設置
(1)打開VC6.0 工具欄Tools菜單下的Options選項,在Directories的標簽頁中右邊的“Show directories for:”下拉列表中選中“Includefiles”,然後在中間列表框中添加你本地安裝MySQL的include目錄路徑。(我的是D:\Program Files\MySQL\MySQL Server 5.0\include)。
(2)在上面說到的“Show directories for:”下拉列表中選中“Library files”,然後添加你本地安裝MySQL的Lib目錄路徑。Lib目錄下還有debug和opt兩個目錄,建議選debug。(我的是D:\Program Files\MySQL\MySQL Server 5.0\lib\debug)。
(3)在“Project settings->Link:Object/library modules”裡面添加“libmysql.lib”。
(4)在stdafx.h裡面添加如下的內容:
#include "mysql.h"
#include "winsock.h"
#pragma comment(lib,"libmySQL.lib")
(5)建議將“libmySQL.lib、libmySQL.dll”拷到你所建的工程的目錄下。
三、數據庫、表的創建
打開“開始->所有程序->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_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()函數中
五、結束語
本文在幾位網友的工作基礎上詳細介紹了MySQL的安裝、調試,以及如何用VC進行編譯,實現數據的“添加、修改、刪除”等功能,可以為在MySQL的VC編程中感到困惑的朋友們提供一點幫助,在此向幾位網友表示感謝!
本文配套源碼