VC不用MFC怎样用ADO连接数据库
怎样初始化ADO对象 问题点数:0、回复次数:5Top
1 楼desrie(leir)回复于 2004-04-04 11:21:37 得分 0
IUnknown, GUIDTop
2 楼masterz(www.fruitfruit.com)回复于 2004-04-04 12:19:22 得分 0
http://www.fruitfruit.com/vc/atl/ado.cppTop
3 楼rifnxa(把vc學到底)回复于 2004-04-04 12:39:08 得分 0
CoInitialize(NULL);
try
{
_RecordsetPtr pRs("ADODB.Recordset");
_ConnectionPtr pCn("ADODB.Connection");
_variant_t vtTableName("authors"),
vtCriteria;
long ix[1];
SAFEARRAY *pSa = NULL;
pCn->Open("DSN=pubs;User ID=sa;pwd=;Provider=MSDASQL;", "", "",
adConnectUnspecified);
// Note 2, Note 3
pSa = SafeArrayCreateVector(VT_VARIANT, 1, 4);
if (!pSa) _com_issue_error(E_OUTOFMEMORY);
// 为第三个元素赋值TABLE_NAME(索引值2).
ix[0] = 2;
TESTHR(SafeArrayPutElement(pSa, ix, &vtTableName));
// 由于Variant没有SafeArray的构造函数,所以手工设置Variant的数据类型和值。
vtCriteria.vt = VT_ARRAY | VT_VARIANT;
vtCriteria.parray = pSa;
pRs = pCn->OpenSchema(adSchemaColumns, vtCriteria, vtMissing);
long limit = pRs->GetFields()->Count;
for (long x = 0; x < limit; x++)
printf("%d: %s\n", x+1,
((char*) pRs->GetFields()->Item[x]->Name));
// Note 4
pRs->Close();
pCn->Close();
}
catch (_com_error &e)
{
printf("Error:\n");
printf("Code = %08lx\n", e.Error());
printf("Code meaning = %s\n", (char*) e.ErrorMessage());
printf("Source = %s\n", (char*) e.Source());
printf("Description = %s\n", (char*) e.Description());
}
CoUninitialize();
Top
4 楼conghonglei(农民工)回复于 2004-04-04 13:41:10 得分 0
看mfc 的ADO代码。Top
5 楼davisyzx(阿祥)回复于 2004-04-04 16:32:12 得分 0
http://www.fruitfruit.com/vc/atl/ado.cpp
上的信息很全面,我就是在这上面第一次成功联上SQLSERVER数据库的;Top




