단순 행 집합 검색
다음 예제에서는 명령을 포함하지 않는 빠르고 쉬운 데이터베이스 액세스를 보여 줍니다. ATL 프로젝트의 다음 소비자 코드는 Microsoft OLE DB Provider for ODBC를 사용하여 Microsoft Access 데이터베이스의 Artists라는 테이블에서 레코드를 검색합니다. 이 코드는 사용자 레코드 클래스CArtists
를 기반으로 접근자를 사용하여 CTable 테이블 개체를 만듭니다. 연결을 열고, 연결에서 세션을 열고, 세션에서 테이블을 엽니다.
#include <atldbcli.h>
#include <iostream>
using namespace std;
int main()
{
CDataSource connection;
CSession session;
CTable<CAccessor<CArtists>> artists;
LPCSTR clsid; // Initialize CLSID_MSDASQL here
LPCTSTR pName = L"NWind";
// Open the connection, session, and table, specifying authentication
// using Windows NT integrated security. Hard-coding a password is a major
// security weakness.
connection.Open(clsid, pName, NULL, NULL, DBPROP_AUTH_INTEGRATED);
session.Open(connection);
artists.Open(session, "Artists");
// Get data from the rowset
while (artists.MoveNext() == S_OK)
{
cout << artists.m_szFirstName;
cout << artists.m_szLastName;
}
return 0;
}
사용자 레코드 CArtists
는 다음 예제와 같습니다.
class CArtists
{
public:
// Data Elements
CHAR m_szFirstName[20];
CHAR m_szLastName[30];
short m_nAge;
// Column binding map
BEGIN_COLUMN_MAP(CArtists)
COLUMN_ENTRY(1, m_szFirstName)
COLUMN_ENTRY(2, m_szLastName)
COLUMN_ENTRY(3, m_nAge)
END_COLUMN_MAP()
};