要用mysql提供的c語言api,首先要包含api的頭檔案目錄,也就是在mfc工程屬性中的「包含目錄」下新增mysql安裝目錄的「include」資料夾。因為api是以動態鏈結庫的形式打包的,所以還要在mfc工程屬性中的「庫目錄」下新增mysql安裝目錄的「lib」資料夾,結果如下圖所示:
vs2008如下設定:
因為是動態鏈結庫,所以在做完上面的配置後,要將mysql安裝目錄下的libmysql.dll檔案拷貝到mfc工程目錄下,如果以後要發行的話這個也要打包進去。昨晚這一步,我們只需要在用到mysql的標頭檔案中包含mysql標頭檔案就可以正常使用此資料庫了。**如下:?
1
2
3
#include
"winsock.h"
//因為資料庫是通過網路連線的,必須包含網路相關標頭檔案
#include
"mysql.h"
//這個沒什麼好說的,mysql標頭檔案自然要包含
#pragma comment(lib,
"libmysql.lib"
)//附加依賴項,也可以在工程屬性中設定
做完上面的配置,我們已經可以正常的使用mysql提供的api了,下面分門別類的來講講具體的操作。
連線資料庫:?
1
2
3
4
5
6
7
8
9
10
11
12
mysql m_sqlcon;
mysql_init(&m_sqlcon);//初始化資料庫物件
if (!mysql_real_connect(&m_sqlcon,
"localhost"
,
"root"
,
"123"
,
"test"
, 3306,
null
, 0))//localhost:伺服器位址,可以直接填入ip;root:賬號;123:密碼;test:資料庫名;3306:網路埠
else
//連線成功則繼續訪問資料庫,之後的相關操作**基本是放在這裡面的
mysql_close(&m_sqlcon);//關閉mysql連線
得到資料庫中表資料:?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
mysql_query(&m_sqlcon,
"set names 'gb2312'"
);//設定資料庫字元格式,解決中文亂碼問題
if (mysql_real_query(&m_sqlcon,
"select * from 物料屬性"
, (unsigned long)strlen(
"select * from 物料屬性"
)))// 查詢資料庫中的
"物料屬性"
表
res = mysql_store_result(&m_sqlcon);//得到儲存結果集
if (
null
== res)//如果為空則返回
int
listrow = 0;
while (row = mysql_fetch_row(res))//重複讀取行,把資料放入列表中,直到row為
null
else
}
listrow++;
}
清空資料表內容:?
1
2
3
mysql_query(&m_sqlcon,
"set names 'gb2312'"
);//設定資料庫字元格式,解決中文亂碼問題
char
*mysqlstatements =
"delete 物料屬性.*from 物料屬性"
;//sql操作語句
mysql_real_query(&m_sqlcon, mysqlstatements, (unsigned long)strlen(mysqlstatements));//清空
"物料屬性"
表
插入資料表內容:?
1
2
3
sprintf_s(mysqlstatements,
"insert into 物料屬性(物料編號,物料名稱,所屬類別,計量單位,樣品單價,批量單價) value('%s', '%s', '%s', '%s', '%s', '%s')"
,
mysqlinsertpoint[0], mysqlinsertpoint[1], mysqlinsertpoint[2], mysqlinsertpoint[3], mysqlinsertpoint[4], mysqlinsertpoint[5]); //sql操作語句
mysql_real_query(&m_sqlcon, mysqlstatements, (unsigned long)strlen(mysqlstatements));//插入資料到
"物料屬性"
表
MFC呼叫C DLL細節
一 使用 clr 編譯 mfc 可執行檔案或規則 dll 1 開啟專案屬性對話方塊,方法是右鍵單擊解決方案資源管理器中的專案並選擇屬性。2 展開配置屬性旁邊的節點並選擇常規。在右側窗格中的專案預設值下,將公共語言執行庫支援設定為公共語言執行庫支援 clr 3 在相同的窗格中,確保將mfc 的使用設定...
MFC呼叫dll檔案
在mfc中呼叫dll檔案的 如下 其中值得注意的是,在if myimageprocess showimg false 一句中,輸入的變數最好使用全域性變數,如果使用內部變數,在debug模式下,函式結束後會出現debug assertion failed錯誤,release下正常執行 獲取dll路徑...
MFC檔案操作
講到檔案操作我們會聯想到自己手動操作檔案會涉及到哪些內容.很容易想到的是檢視檔案 資料夾 是否存在,建立,複製,刪除,剪下檔案 資料夾 另外就是設定檔案的屬性.那mfc中一些操作檔案的類也差不多是會涉及到你如上操作.檢視檔案你可能憑直觀感覺想到用find search這樣的函式.猜的大概不錯.mfc...