程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> 關於VC++ >> MySQL數據庫的安裝調試和VC實現

MySQL數據庫的安裝調試和VC實現

編輯:關於VC++

(調試此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編程中感到困惑的朋友們提供一點幫助,在此向幾位網友表示感謝!

本文配套源碼

  1. 上一頁:
  2. 下一頁:
欄目導航
Copyright © 程式師世界 All Rights Reserved