ODBC API

ADO API ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ODBC๋ฅผ ํ™œ์šฉํ•˜์—ฌ DB ์‚ฌ์šฉํ•˜๊ธฐ ๋˜ํ•œ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์•„๋ž˜ ์„ค๋ช…์€ git ์˜ˆ์‹œ ์ฝ”๋“œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ์ฒด ์ •์˜

// ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•  ๊ฐ์ฒด
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?