ODBC API
ADO API ์ ๋ง์ฐฌ๊ฐ์ง๋ก ODBC๋ฅผ ํ์ฉํ์ฌ DB ์ฌ์ฉํ๊ธฐ ๋ํ ๊ฐ๋ฅํฉ๋๋ค.
๊ฐ์ฒด ์ ์
// ์ฐ๊ฒฐ์ ์ค์ ํ ๊ฐ์ฒด
Proud::COdbcConnection conn;
// ๋ช
๋ น์ ์ค์ ํ ๊ฐ์ฒด
Proud::COdbcCommand cmd;
// ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๋ด์ ๊ฐ์ฒด
Proud::COdbcRecordset record;
// ์ฟผ๋ฆฌ ์๋ฌ๋ฅผ ๋ด์ ๊ฐ์ฒด๋ก ์ฌ์ฉํ์ง ์์๋ ๋ฌด๋ฐฉํฉ๋๋ค.
Proud::COdbcWarnings warnings;
DB ์ฐ๊ฒฐํ๊ธฐ
Open ํจ์์ ํ๋ผ๋ฏธํฐ๋ก ๋ค์ด๊ฐ๋ ๊ตฌ๋ฌธ์ Connection Strings ๊ท์น์ ๋ฐ๋ฆ ๋๋ค.
conn.Open(Proud::String::NewFormat(L"Driver={ODBC Driver 17 for SQL Server};Server=localhost;Trusted_Connection=yes;"), &warnigs);
DB ์ฌ์ฉํ๊ธฐ
- Query ์ฌ์ฉํ๊ธฐ
conn.BeginTrans();
// ์ฌ์ฉ ์์ 1
conn.Execute(_PNT("CREATE TABLE test(id int primary key, name nvarchar(30))"));
// ์ฌ์ฉ ์์ 2
Proud::String query = _PNT("INSERT INTO test(id) VALUES(1)");
result = conn.Execute(query);
conn.CommitTrans();
- Query prepare ์ฌ์ฉํ๊ธฐ
int id;
Proud::String name;
cmd.Prepare(conn, _PNT("INSERT INTO test(id, name) VALUES(?, ?)"));
cmd.AppendInputParameter(&id);
cmd.AppendInputParameter(&name);
id = 5;
name = _PNT("Nettention");
result = cmd.Execute();
- Stored procedure ์ฌ์ฉํ๊ธฐ
int ret;
int id;
Proud::String name;
// input parameter๋ง ์์ ๊ฒฝ์ฐ
cmd.Prepare(conn, _PNT("{call insertTest(?,?)}"));
cmd.AppendInputParameter(&id);
cmd.AppendInputParameter(&name);
id = 8;
name = _PNT("SPTest");
result = cmd.Execute();
// output parameter๊ฐ ์กด์ฌํ ๊ฒฝ์ฐ
cmd.Prepare(conn, _PNT("{? = call outputTest(?,?)}"));
cmd.AppendOutputParameter(&ret);
cmd.AppendInputParameter(&id);
cmd.AppendOutputParameter(&name);
id = 5;
name.GetBuffer(100);
result = cmd.Execute();
name.ReleaseBuffer();
- Recordset์ผ๋ก ๋ฐ์ดํฐ ์ฝ๊ธฐ
int id;
Proud::String name;
result = conn.Execute(record, _PNT("SELECT * FROM test"));
while (record.MoveNext())
{
id = record.GetFieldValue(_PNT("id"));
name = record.GetFieldValue(_PNT("name"));
_tprintf_s(_PNT("id = %d, name = %ws\n"), id, name.GetString());
}
Last updated
Was this helpful?