초보가 ADO 프로그래밍 질문좀 드리겠습니다~

season12의 이미지

ADO로 데이터베이스 프로그래밍중입니다..
현재 TCP/IP 소켓과 시스템 프로그래밍이라는 책을 보면서 코드 따라치고 있는데요..

#include "stdafx.h"
#include
#include
#include

#pragma warning(disable:4146)
#import "C:\Program Files (x86)\Common Files\System\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")

int _tmain(int argc, _TCHAR* argv[])
{
CoInitialize(NULL);

_ConnectionPtr pConnection;
HRESULT hr = pConnection.CreateInstance(__uuidof(Connection));

if (FAILED(hr))
{
puts("ADO connection 객체 생성 실패");
CoUninitialize();
return 0;
}

pConnection->Open(
_bstr_t("Provider=SQLOLEDB;Server=localhost;InitialCatalog=MEMBER"),
_bstr_t("sa"),
_bstr_t("1234"),
adConnectUnspecified);

_RecordsetPtr pRecordset;
hr = pRecordset.CreateInstance(__uuidof(Recordset));

if (FAILED(hr))
{
puts("ADO Recordset 객체 생성 실패");
CoUninitialize();
return 0;
}

pRecordset->Open(
_variant_t("SELECT * FROM MEMDB"),
_variant_t((IDispatch *)pConnection, TRUE),
adOpenStatic,
adLockOptimistic,
adCmdText);

if (SUCCEEDED(pRecordset->MoveFirst()))
{
do
{
if (pRecordset->adoEOF)
break;

_variant_t vtName = pRecordset->Fields->GetItem(_variant_t ("ID"))->Value;

wprintf(L"%s\n", vtName);
} while (SUCCEEDED( pRecordset->MoveNext()));
}

pRecordset->Close();
pRecordset->Release();

pConnection->Close();
pConnection.Release();

CoUninitialize();
return 0;
}

소스는 이게 다입니다...

근데 pRecordset->Open(
_variant_t("SELECT * FROM MEMDB"),
_variant_t((IDispatch *)pConnection, TRUE),
adOpenStatic,
adLockOptimistic,
adCmdText);
이 부분에서 프로그램이 죽어버립니다...

그 전에 함수에서 hr 리턴값은 s_ok 나왔었구요..
책을 보고 그대로 쳤는데 왜 에러가 나는지 모르겠습니다..
작업은 비주얼 스튜디오 2008에서 하고 있습니다~~

답변좀 부탁드리겠습니다 (__)