利用mysql的C API來操作mysql資料庫

2021-06-07 12:40:57 字數 2434 閱讀 8275

要使用mysql的c api來運算元據庫,則在安裝資料庫的時候必須選擇安裝其開發元件,主要是一些標頭檔案和庫檔案的安裝,在程式設計的時候需要使用這些庫。在程式開發的時候,需要包含標頭檔案資料夾include,以及庫資料夾lib/debug,在外部庫依賴中填寫libmysql.lib,另外,由於需要使用網路連線,還需要開啟windows socket 支援。

在我的測試程式中,我建立的表結構為:

其中的資料有:

測試**(測試**沒有處理編碼方面的問題,本人發現當user_name欄位中存在漢字時,對話方塊中顯示的是問號):

//測試連線mysql

void cserverdlg::onbnclickedconnmysqlbutton()

else

//修改操作

char * update_query = "update user set user_name=\'sabi-no1\' where user_id=\'2340230\'";

int length = strlen(update_query);

if(mysql_real_query(&mysql, update_query, length)!=0)

else

//新增操作

char * add_query = "insert into user (user_id,pwd,user_name) values (\'8220334\',\'123456\',\'test2\')";

length = strlen(add_query);

if(mysql_real_query(&mysql, add_query, length)!=0)

else

//刪除操作

char * del_query = "delete from user where user_id=\'8220334\'";

length = strlen(del_query);

if(mysql_real_query(&mysql, del_query, length)!=0)

else

//查詢操作

char * sel_query = "select * from user";

length = strlen(sel_query);

mysql_res * result;

mysql_row row;

unsigned long * collen;

if((mysql_real_query(&mysql, sel_query, length)==0) && ((result = mysql_use_result(&mysql)) != null))

mysql_free_result(result);

} else

//mysql_close(&mysql);

}

(20120704注:)

關於亂碼的問題,今天解決了。資料庫中儲存資料使用的是utf8編碼,這是一種三位元組的編碼,我的vc使用的是雙位元組的unicode編碼。具體的處理過程是:

1、在建立連線前設定選項

mysql_options(&mysql,mysql_set_charset_name, "utf8");
2、從資料庫讀取資料時,獲取他的字段長度

row = mysql_fetch_row(result);

unsigned long * collen = mysql_fetch_lengths(result);

3、使用multibytetowidechar方法將三位元組資料轉換為雙位元組資料(詳見

msdn)

wchar wsz[100];

multibytetowidechar(cp_utf8,0,row[0],collen[0]+1,wsz,sizeof(wsz));

cstring str;

str.format(l"%s",wsz);

afxmessagebox(str);

multibytetowidechar(cp_utf8,0,row[1],collen[1]+1,wsz,sizeof(wsz));

str.format(l"%s",wsz);

afxmessagebox(str);

multibytetowidechar(cp_utf8,0,row[2],collen[2]+1,wsz,sizeof(wsz));

str.format(l"%s",wsz);

afxmessagebox(str);

利用JQUERY來操作Radio的方法

在開發中經常會用到radio來實現使用者的選擇效果,我在專案中積累了一些利用jquery來操作radio的方法,在這裡分享一下,供有需要的朋友借鑑。1 改變radio的選擇,觸發一些效果 複製 如下 input radio name dialcheckresult change function 2...

利用檔案的路徑來操作檔案

1.利用nsfilemanager 檔案處理類來得到資料夾路徑下的所有檔案或資料夾名稱 nsfilemanager fm nsfilemanager defaultmanager 獲取某個資料夾路徑下面的所有的檔案或資料夾名稱 nsstring path users tarena desktop f...

利用DAO來建立 讀寫Access檔案操作例項

下面讓我們來簡要看看它的實現步驟 1.首先,應確保包含進了afxdao.h標頭檔案,可以在stdafx.h檔案中包含它,如下 include 加入dao資料庫支援2.宣告dao庫及其記錄集變數,可在你的實現檔案中加入下面 cdaodatabase db 資料庫 cdaorecordset recse...