日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

c 指定端口连接mysql_c++连接mysql(MYSQL C api使用)

發布時間:2025/3/19 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c 指定端口连接mysql_c++连接mysql(MYSQL C api使用) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、設置工程屬性

包含目錄 D:\amp\MySQL5\lib\debug;D:\amp\MySQL5\include

2、頭文件

代碼:

#include "mysql.h"

#pragma comment(lib,"libmySQL.lib")

public:

...

MYSQL mysql;

char *sql;

MYSQL_RES *result;

MYSQL_ROW row;

4、連接數據庫

//mysql_real_connect(數據庫句柄,主機名,用戶名,密碼,數據庫名,端口,命名管道,客戶端標記)

代 碼:

mysql_init(&mysql);

if

(!mysql_real_connect(&mysql,"localhost","root","1","mydb",3306,NULL,0))

{

MessageBox(_T("

數據庫連接錯誤!"));

return FALSE;

}

mysql_query(&mysql,"SET NAMES

gb2312");

mysql_query(&mysql,"SET character

set gb2312");

5、如果連接成功,就可以進行數據庫的讀寫了:

步驟是:

1.mysql_query()提交查詢語句

2.mysql_use_result() 獲取上一次查詢的結果集

3.mysql_fetch_row()從結果集中獲取單項內容

4.mysql_free_result() 釋放結果集

根據建vc工程的屬性:

a.如果不是unicode,只需要在輸入輸出數據庫的地方加上

mysql_query(&mysql,"SET NAMES gb2312");

b.如果是unicode,文件是ANSI編碼,要進

行轉換,轉換是用MultiByteToWideChar()和WideCharToMultiByte()這兩個Windows

API,前者ANSI > Unicode, 后者Unicode >

ANSI。

ANSI > Unicode:

WCHAR ch[200];

MultiByteToWideChar(CP_ACP,0,row[0],nLength[0]+1,ch,sizeof(ch));

===============================================

Unicode > ANSI:

// 將CString的內容轉換為ANSI

void UnicodeToAnsi( CString str,char *pstr )

{

WCHAR *pwtrQuery;

pwtrQuery = (WCHAR *)(LPCTSTR)str;

WideCharToMultiByte(CP_ACP,0,pwtrQuery,-1,pstr,strlen(pstr),NULL,NULL);

}

使用方法:

char ch[200];

CString str = L"Unicode charactor";

UnicodeToAnsi(ch, str);

Unicode版代碼:

sql = "select username,visitelist,remark from

mytable";

if(mysql_query(&mysql,

sql)!=0)

{

MessageBox(_T("

讀取表出錯!"));

return;?}

if(!(result =

mysql_use_result(&mysql)))

{

MessageBox(_T("讀取數據集失敗!"));

return;?}

int i = 0;

CString tmp;

WCHAR wsz[100];

unsigned long *nLength;

while(row = mysql_fetch_row(result))

{

//ANSI >

Unicode

// 獲取結果字段的長度

nLength =

mysql_fetch_lengths(result);

// 獲取結果集中第一個字段的內容

MultiByteToWideChar(CP_ACP,0,row[0],nLength[0]+1,wsz,sizeof(wsz));

//?tmp.Format(_T("%s"),row[0]);

m_list.InsertItem(0, wsz);

nLength =

mysql_fetch_lengths(result);

MultiByteToWideChar(CP_ACP,0,row[1],nLength[1]+1,wsz,sizeof(wsz));

//?tmp.Format(_T("%s"),row[1]);

m_list.SetItemText(0, 1,

wsz);

nLength =

mysql_fetch_lengths(result);

MultiByteToWideChar(CP_ACP,0,row[2],nLength[2]+1,wsz,sizeof(wsz));

//?tmp.Format(_T("%s"),row[2]);

m_list.SetItemText(0, 2,

wsz);

i++;

}

mysql_free_result(result);

非Unicode版代碼:

...

while(row = mysql_fetch_row(result))

{

tmp.Format("%s",row[0]);

m_list.InsertItem(0, tmp);

nLength =

mysql_fetch_lengths(result);

tmp.Format("%s",row[1]);

m_list.SetItemText(0, 1,

tmp);

nLength =

mysql_fetch_lengths(result);

tmp.Format("%s",row[2]);

m_list.SetItemText(0, 2,

tmp);

i++;

}

...

總結

以上是生活随笔為你收集整理的c 指定端口连接mysql_c++连接mysql(MYSQL C api使用)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。