1. mysql_init():
初始化mysql結構體
2. mysql_real_connect(mysql *mysql, const char *host, const char *user, const char *passwd, const char *db, unsigned int port, const char *unix_socket, unsigned int client_flag):
(1). 第乙個引數應該是乙個現存mysql結構的位址。在呼叫mysql_real_connect()之前,你必須呼叫mysql_init()初始化mysql結構。
(2). host值可以是乙個主機名或乙個ip位址。如果host是null或字串」localhost」,假定是到本地主機的乙個連線。如果os支援套接字(unix)或命名管道(win32),使用他們而不是tcp/ip與伺服器連線。
(3). user引數包含使用者的mysql登入id。如果user是null,假定是當前使用者。在unix下,它是當前登入名。在windows odbc下,必須明確地指定當前使用者名字。
(4). passwd引數為user包含口令。如果passwd是null,只有在user表中對於有乙個空白口令欄位的使用者的條目將被檢查乙個匹配。
(5). db是資料庫名。如果db不是null,連線將預設資料庫設定為這個值。
(6). 如果port不是0,值對於tcp/ip連線將用作埠號。注意host引數決定連線的型別。
(7). 如果unix_socket不是null,字串指定套接字或應該被使用的命名管道。注意host引數決定連線的型別。
(8). client_flag值通常是0
3. mysql_query(query,connection):
(1). 必需。規定要傳送的 sql 查詢。注釋:查詢字串不應以分號結束。
(2). 可選。規定 sql 連線識別符號。如果未規定,則使用上乙個開啟的連線。
(3). 返回值:mysql_query() 僅對 select,show,explain 或 describe 語句返回乙個資源識別符號,如果查詢執行不正確則返回 false。
對於其它型別的 sql 語句,mysql_query() 在執行成功時返回 true,出錯時返回 false。
4. mysql_store_result(mysql *mysql):
檢索完整的結果集至客戶端。
5. mysql_num_fields(data)
mysql_num_fields() 函式返回結果集中欄位的數
(1). data:必需。規定規定要使用的資料指標。該資料指標是 mysql_query() 函式產生的結果。
6. mysql_num_rows(data)
mysql_num_rows() 函式返回結果集中行的數目
(1). data:必需。結果集。該結果集從 mysql_query() 的呼叫中得到。
7. mysql_fetch_row(data)
mysql_fetch_row() 函式從結果集中取得一行作為數字陣列
(1). data:必需。要使用的資料指標。該資料指標是從 mysql_query() 返回的結果。
(2). 返回值:返回根據所取得的行生成的陣列,如果沒有更多行則返回 false。
8. mysql_field_count(mysql *mysql)
返回作用在連線上的最近查詢的列數。該函式的正常使用是在mysql_store_result()返回null(因而沒有結果集指標)時。在這種情況下,可呼叫mysql_field_count()來判定mysql_store_result()是否應生成非空結果。
9. mysql_affected_rows(link_identifier)
mysql_affected_rows() 函式返回前一次 mysql 操作所影響的記錄行數。
(1). link_identifier:必需。mysql 的連線識別符號。如果沒有指定,預設使用最後被 mysql_connect() 開啟的連線。如果沒有找到該連線,函式會嘗試呼叫 mysql_connect() 建立連線並使用它。如果發生意外,沒有找到連線或無法建立連線,系統發出 e_warning 級別的警告資訊。
(2). 返回值:執行成功,則返回受影響的行的數目,如果最近一次查詢失敗的話,函式返回 -1。
如果最近一次操作是沒有任何條件(where)的 delete 查詢,在表中所有的記錄都會被刪除,但本函式返回值在 4.1.2 版之前都為 0。
當使用 update 查詢,mysql 不會將原值與新值一樣的列更新。這樣使得 mysql_affected_rows() 函式返回值不一定就是查詢條件所符合的記錄數,只有真正被修改的記錄數才會被返回。
replace 語句首先刪除具有相同主鍵的記錄,然後插入乙個新記錄。該函式返回的是被刪除的記錄數加上被插入的記錄數。
1. mysql
這個結構表示對乙個資料庫連線的控制代碼,它被用於幾乎所有的mysql 函式。
2. mysql_res
這個結構代表返回行的乙個查詢的(select , show , describe ,explain )的結果。從查詢返回的資訊在本章下文稱為結果集合 。
3. mysql_row
這是乙個行資料的型別安全(type-safe)的表示。當前它實現為乙個計數位元組的字串陣列。(如果字段值可能包含二進位制資料,你不能將這些視為空終止串,因為這樣的值可以在內部包含空位元組) 行通過呼叫mysql_fetch_row() 獲得。
4. mysql_field
這個結構包含字段資訊,例如欄位名、型別和大小。其成員在下面更詳細地描述。你可以通過重複呼叫mysql_fetch_field() 對每一列獲得mysql_field 結構。字段值不是這個結構的部分;他們被包含在乙個mysql_row 結構中。
#include
#include
#include
using
namespace
std;
int main()
char
string[200]="select *from test1";
/*查詢指定的,以null終結的字串,若成功返回0*/
if(mysql_query(sock,string))
mysql_res *result; //返回行的查詢結果,返回的資料稱為資料集
unsigned uline=0,ufield=0; //行數,字段數
mysql_row row; //行資料的型別
unsigned
long *lengths;
if(!(result = mysql_store_result(sock)))
uline=(unsigned)mysql_num_rows(result); //獲得行數
ufield=(unsigned)mysql_num_fields(result); //獲得字段數
/*返回作為乙個mysql_field結構的乙個結果集合的乙個列的定義*/
if(result)
cout
else
}}
附:編譯程式的時候在命令後面新增mysql_config --cflags --libs
利用ODBC連線資料庫
例子用到的資料庫是mysql 新增資料來源 建立mfc 基佬於對話方塊的工程odbc 在工程裡新增標頭檔案 include afxdb.h 建立cdatabase類的物件 cdatabase db 接下來就是連線資料庫了,在oninitdialog函式裡新增 判斷資料庫是否開啟 if db.isop...
連線資料庫
2 documents 目錄就是我們可以用來寫入並儲存檔案得地方,一般可通過 nsarray paths nssearchpathfordirectoriesindomains nsdocumentdirectory,nsuserdomainmask,yes nsstring documentsdi...
連線資料庫
1 oracle8 8i 9i資料庫 thin模式 class.forname oracle.jdbc.driver.oracledriver newinstance string url jdbc oracle thin localhost 1521 orcl orcl為資料庫的sid strin...