今天尝试用ADO编写数据库程序在Stdafx.h中包含如下  
 
信息  
#include  "icrsint.h"  
#import  "c:\Program  Files\Common    
 
Files\System\ADO\msado15.dll"    no_namespace    
 
rename("EOF","EndOfFile")  
#include  <stdio.h>  
#include  <adoid.h>  
#include  <adoint.h>  //去掉这行的话,程序就不让那些宏  
 
这义了  
#include  <iostream>  
class  CCustomRs:public  CADORecordBinding  
{  
             
           BEGIN_ADO_BINDING(CCustomRs)  
                         
 
ADO_VARIABLE_LENGTH_BINDING_ENTRY(1,adVarChar,m_  
 
szau_lname,  
                                 
 
sizeof(m_szau_lname),lau_lnameStatus,FALSE)  
                         
 
ADO_VARIABLE_LENGTH_BINDING_ENTRY(2,adVarChar,m_  
 
szau_fname,  
                                 
 
sizeof(m_szau_fname),lau_fnameStatus,FALSE)  
                         
 
ADO_FIXED_LENGTH_BINDING_ENTRY(3,adVarChar,m_sza  
 
u_fname,  
                                 
 
sizeof(m_szphone),lphoneStatus,TRUE)  
           END_ADO_BINDING()  
public:  
           CHAR  m_szau_lanme[10];  
           ULONG  lau_lnameStatus;  
           CHAR  m_szau_fname[10];  
           CHAR  lau_fnameStatus;  
           CHAR  m_szphone[10];  
           ULONG  lphoneStatus;  
};  
 
void  dum_com_error(_com_error&  e)  
{  
           printf("Error\n");  
           printf("\a\tCode=%081x\n",e.Error());  
}  
出现了62个类似这样的错误:  
d:\microsoft  visual  studio\vc98\include\adoint.h(106)  :    
 
error  C2371:  'Connection'  :  redefinition;  different  basic    
 
types  
 
谁能给我一个ADO最简单的程序,我的书不全,而且是第  
 
一次写[email protected]

解决方案 »

  1.   

    #import  "c:\Program  Files\Common Files\System\ADO\msado15.dll" no_namespace rename("EOF","EndOfFile")  
    将这句放到所有的"#include"之后。
      

  2.   

    i give you ,
    accept.
      

  3.   

    好像不行嘛,出了102个错,原是来62个,如下:
    d:\练兵场\adovc\debug\msado15.tli(1416) : error C2511: 'FieldChangeComplete' : overloaded member function 'long (long,const class _variant_t &,struct Error *,enum EventStatusEnum *,struct _Recordset *)' not found in 'RecordsetEventsVt'
      

  4.   

    #import "c:\program files\common files\system\ado\msado15.dll" rename ("EOF","adoEOF") no_namespace
    CoInitialize(NULL);
        static _ConnectionPtr  spCON;
    static _variant_t rec_affected; char DBstr[] = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=ATM.mdb;DefaultDir=;";
        try{
            //CREATEiNSTANCE(spCON,Connection);
            spCON.CreateInstance(_uuidof(Connection));
          spCON->Open( DBstr, "", "", -1 );
    int i=50;
    char achSQL[256]= "select * from atm;";
    SYSTEMTIME systime, ctime = {0};
    ctime.wSecond = 2;
    while(1)
    {
    i++;
    GetLocalTime(&systime);
    sprintf(achSQL, "insert into atm values (%d,'9988000000010452','%02d%02d%02d','20030428','6091',%d,'00','0','0','');", i, systime.wHour, systime.wMinute, systime.wSecond ,i);
    spCON->Execute(achSQL, &rec_affected, -1);
    rec_affected.Clear();
    systime = GetDelayTime(systime, ctime);
    sprintf(achSQL, "select * from atm where t_time < '%02d%02d%02d';", systime.wHour, systime.wMinute, systime.wSecond);
    // spCON->Execute(achSQL,NULL,NULL);
    sprintf(achSQL, "delete * from atm where t_time < '%02d%02d%02d';", systime.wHour, systime.wMinute, systime.wSecond);
    spCON->Execute(achSQL,NULL,NULL);
    }        spCON->Close(); 
    spCON.Release();
    CoUninitialize();
        }
        catch( _com_error &e)
        {
            _bstr_t bstrSource(e.Source());
            _bstr_t bs =  _bstr_t(" Error: ") + _bstr_t(e.Error()) + _bstr_t(" Msg: ") 
                + _bstr_t(e.ErrorMessage()) + _bstr_t(" Description: ") 
                + _bstr_t(e.Description());
        }