VC++6.0 鏈接MySQL

1、MySQL的安裝

能夠考慮安裝mysql-5.5,注意選擇「徹底安裝」(只有這樣纔會安裝VC編譯時須要的頭文件等)。安裝後期會進行服務器配置,你能夠設置你的服務器登錄密碼,也能夠不設置密碼。

2009年6月10日 - aoxiangtiankong<a href='http://my.oschina.net/yeah' class='referer' target='_blank'>@yeah</a>  - 清晨森林裏的一滴露珠2、VC6.0的設置
mysql

(1)打開VC6.0 工具欄Tools菜單下的Options選項,在Directories的標籤頁中右邊的「Show directories for:」下拉列表中選中「Includefiles」,而後在中間列表框中添加你本地安裝MySQL的include目錄路徑。(個人是D:\Program Files\MySQL\MySQL Server 5.0\include)。 sql

(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" // 若是編譯出錯,則把該行放到#include "mysql.h"以前 #pragma comment(lib,"libmySQL.lib") // 若是在附加依賴項裏已增長,則就不要添加了

(5)建議將「libmySQL.lib、libmySQL.dll」拷到你所建的工程的目錄下。 函數

2009年6月10日 - aoxiangtiankong<a href='http://my.oschina.net/yeah' class='referer' target='_blank'>@yeah</a>  - 清晨森林裏的一滴露珠 3、數據庫、表的建立

打開「開始->全部程序->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;//顯示錶的結構

2009年6月10日 - aoxiangtiankong<a href='http://my.oschina.net/yeah' class='referer' target='_blank'>@yeah</a>  - 清晨森林裏的一滴露珠4、VC編程 fetch

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)實現添加 功能 spa

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)實現刪除功能 .net

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()函數中
相關文章
相關標籤/搜索