怎样初始化ADO对象

解决方案 »

  1.   

    http://www.fruitfruit.com/vc/atl/ado.cpp
      

  2.   

    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();
      

  3.   

    http://www.fruitfruit.com/vc/atl/ado.cpp
    上的信息很全面,我就是在这上面第一次成功联上SQLSERVER数据库的;