用connection加入一条纪录的方法:
// Write the SQL statement into a string
// Cast variant dates to bstr_t so they will be converted into a string
strSQLStatement << L"INSERT INTO ... // Parameters of execute statement
bstr_t strSQLStmt = strSQLStatement.str().c_str();
variant_t vntRecordsAffected; // Execute the SQL statement to create a payment record
pObjADO_Connection->Execute(strSQLStmt, &vntRecordsAffected, 1);_raw好像表示远程调用什么的,在使用过程中没有太多的区别。

解决方案 »

  1.   

    多谢,但我是想用RecordSet的AddNew增加
      

  2.   

    关于“_”有两种方法使用ADO:
    第一种,使用ADO头文件和OLE DB SDK 的输入库,在源代码中包含ADO的头文件(adoid.h,adoint.h),并把ADO收入库adoid.lib加到连接器的输入中,这样就可以创建ADO对象的实例,并访问成员函数:
    ADOConnection *piConnection;
    CoCreateInstance(CLSID_CADOConnection,NULL,CLSIX_INPROC_SERVER,
                       IID_IADOConnection,(LPVOID *)&piConnection);

    第二种,使用VC的#import指令,通过该指令使用ADO库,可以简化代码。这样就可以直接使用你所说的代下划线的类:
       _ConnectPrt pConnection;
    pConnection.CreateInstance(__uuidof(Connection));
    这和上面的那段代码意义一样。带下划线的叫做“只能指针”,在程序中可以不必调用Release函数释放这些对象,而如果用的一种方法,你必须自己释放对象。(因为只能指针在超出自己范围之后,会自动调用Release函数),另外,你也不必再源代码中添加ADO的头文件包含。
    #import示例:
    #import “C:\program files\commom files\system\ado\msado15.dll” no_namespace  rename(“EOF”,”adoEOF”)
      

  3.   

    ADO中用AddNew,UpDate,Delete分别实现增加,修改和删除数据
      

  4.   

    非常感谢FireAngel!
    但是
    m_MyRecordset->AddNew  与  m_MyRecordset->raw_AddNew
        m_MyRecordset->Update  与  m_MyRecordset->raw_Update
        Index属性与 get_Index,put_Index方法  等等
    的区别是什么呢?
    还有我怎样能取得一个字段的类型?如果是字符型,我怎样取得它的字段长度?
    多谢
      

  5.   

     由于ADO是基于COM接口的,因此,它的所有数据类型都是变体型,在程序中必须自己进行强制类型转换,把取得的variant类型的数据转换为BSTR型
    当然,在ADO当中也可以使用执行SQL语句的方法来进行更新操作。