ADO API

ProudNet DB中的ADO Wrapper API是爲了在C++語言中輕鬆處理Microsoft ActiveX Data Object(ADO)而製作的API,可以更容易地利用ADO訪問DBMS。

下面的程式碼是基於git 範例專案進行解釋的。

連接DB

作爲參數進入Open函數的語句遵循Connection Strings規則。

Proud::CAdoConnection conn;

// MSSQL
conn.Open(L"Driver={ODBC Driver 17 for SQL Server};Server=localhost;Database=ProudAdo-Test;Trusted_Connection=yes;");
// MYSQL
conn.Open(L"Driver={MySQL ODBC 8.0 Unicode Driver};Server=127.0.0.1;Port=3306;Database=proudado-test;User ID=proud;Password=proudnet123;Option=3;", Proud::DbmsType::MySql);

使用DB

- 直接使用Query

// 這是一個測試查詢。
// 爲了使用該查詢
// DB 有名為 UserId、Password 和 Country 的欄位
// UserData 表必須存在。


// 開始交易
conn.BeginTrans();

// 查詢執行程式碼
// 下面的範例是用於測試目的的查詢。
// 爲了使用該查詢
// DB 有名為 UserId、Password 和 Country 的欄位。
// UserData 表必須存在。
conn.Execute(Proud::String::NewFormat(L"insert into UserData (UserID, Password, Country) VALUES(%s, %s, %d)", L"test", L"password", 1));

// 交易 commit
conn.CommitTrans();

- 使用Stored procedure

// 包含命令信息的 CAdoCommand
Proud::CAdoCommand cmd;
// 包含 Return 數據的 CAdoRecordset
Proud::CAdoRecordset rec;

// 必須存在名爲AddUserData的procedure。
cmd.Prepare(conn, L"AddUserData");

// 添加參數 。
cmd.Parameters[1] = L"test";
cmd.Parameters[2] = L"password";
cmd.Parameters[3] = 1;

// 運行 procedure
cmd.Execute(rec);

rec.Close();

- 讀取 CAdoRecordset 數據

Proud::AdoRecordset rec;
// 同樣,DB中必須存在UserData表。
rec.Open(conn, Proud::DbOpenFor::OpenForReadWrite, L"select * from UserData");

Proud::String strID, strPassword, strCountry;
while (rec.IsEOF() == false)
{
	strID = ((Proud::String)rec.FieldValues[L"UserID"]).GetString();
	strPassword = ((Proud::String)rec.FieldValues[L"Password"]).GetString();
	strCountry = ((Proud::String)rec.FieldValues[L"Country"]).GetString();
	
	wprintf(L"UserID : %s, Password : %s, Country : %s\n", strID.GetString(), strPassword.GetString(), strCountry.GetString());
	
	rec.MoveNext();
}

Last updated