mysql CAPI與C 的互動

2021-05-25 02:41:05 字數 1571 閱讀 8979

首先要保證mysql的服務是開啟的才能進行對資料庫的操作。

mysql與c++互動有兩個非常好的三方庫乙個是mysql++,乙個是connector/c++,這兩個庫我嘗試了mysql++不過我發現在中國mysql++的很多資料缺乏,很多都是講了一半剩下的就沒了,除非去看英文文件,可惜我英文不算好,所以我果斷先放棄試用三方庫還是老老實實的用用mysql官方的capi庫。

2、在進行資料庫操作的時候我們需要宣告乙個mysql 的資料結構,要包含mysql.h,但是你突然發現會出現編譯報錯,原來mysql.h裡引用了windows.h的一些東西,所以你要先包含windows.h才能正常使用mysql capi.

#include

#include"mysql.h"

void main()

mysql mysql;

我們必須先呼叫mysql的初始化

mysql_init(&mysql);

然後再連線資料庫

char* hostip="127.0.0.1";這個不用我說了吧

char* username="root";預設的資料庫使用者名稱,可以自定義

char* pwd="1";使用者密碼

char* port=「3306」;埠名

char* dbname="demo";資料庫名

mysql_real_connect(&mysql,hostip,username,pwd,dbname,port,null,0);

鏈結資料庫,返回mysql的指標,最後兩個引數依次為連線型別,mysql執行成odbc資料庫的標記。

現在我們進行增、刪、改、查的基本操作

查詢char* query="select * from demo.temp";由於我沒有先使用use 資料庫名,所以需要用資料庫名來引用表名

mysql_real_query(&mysql,query,(unsinged long)strlen(query)); 

執行之後會產生乙個結果集

mysql_res* res;

mysql_use_result(res);返回查詢的結果集也可使用mysql_store_result(mysql_res*)區別請參考官方手冊

通過迴圈檢索每一行讀出每行資料

mysql_row row;

while((row=mysql_fetch_row(res))!=null)

{for (int i=0;i注意每次使用完結果集時,請釋放結果集

mysql_free_result(res);

修改querytemp="update demo.temp set ***x=***x where id=xx";

int issuccse=mysql_real_query(&mysql,querytemp,(unsigned long)strlen(querytemp));

if (issuccse)

{cout<<"錯誤"《刪除

querytemp="delete from demo.temp where id=xx";

同上增加

querytemp="insert demo.temp values(id,xx,***)";

同上

c 與c 之間的互動

c 的 是非託管的.而.net是託管的.那麼c 和.net之間互相呼叫或者傳送資料的時候.就需要 封送資料到非託管 或者 到託管 而且他們之間的型別也是不相容的.如c 裡面的string型別,c 是沒有的.所以 如果像傳 int double一般不會有問題.但是string 傳值 最好用intptr...

C 與SAP 的互動

最近 做乙個專案 是 把 系統內部資料 上傳到 sap 中,由於 沒接觸 過 sap 對於 sap 還是 很陌生,在 問了 很多人 以及 查詢質料 終於 在 上周五 完成了 這個 模組,下面 說一下 具體的 步驟。最開始 以為 c 與 sap 是 websevice 之間 通訊 的 但是 在 聯絡 ...

qml與C 的互動

簡單說下我自己對qml與c 的互動的理解流程 1.介面互動,很多新手可能會寫qt介面或者qml介面,但想要把qml與c 結合起來就一臉矇逼了。首先我提供個簡單的方法實現qml和c 的介面互動,首先引入幾個重要的標頭檔案,當然在專案檔案中需要加qt quickwidgets才能引用以下標頭檔案 inc...