能不能也给我一份呀?[email protected]

解决方案 »

  1.   

    可以啊,谁想要都可以,不过这些都是MSDN里的例子,所以如果结合MSDN看的效果最好啦。
      

  2.   

    我有,需要的话email给我,我发给你[email protected]
      

  3.   

    give me a fen : [email protected]
      

  4.   

    转贴:CFree(自由从哪派生?) (2001-11-9 20:54:25)  得0分 
    in ado:
    //After declaration
    try
        {  
            hr=m_pConnection.CreateInstance(__uuidof(Connection));
            hr=m_pRecordset.CreateInstance(__uuidof(Recordset));
            m_pConnection->Open(Connect,"","",-1);//实现记录的添加
    _bstr_t bstrSQL="insert into yourtable values ('col1','col2')";
    m_pConnection->Execute(bstrSQL, NULL, -1);m_pRecordset->Close(); 
    m_pConnection->Close(); 
    }
        catch(...)
        {
            //MessageBox("抛出异常,程序将关闭!");
        }  
      

  5.   

    我这里有一整套的MSDN的例子,如果要的话,明天早晨我就可以从公司发给你,但是你要我贴在上面,那我还要去找一次,太累了吧。真的,主要是我现在太忙了,如果有邮箱的话,我发给你,楼上这位兄台的方法只是一种而已啦,ADO数据库的连接还有很多中方法,就是添加数据也有很多方法,如果想要的话,就留下邮箱吧。
    现在我在csdn给别人回答问题,已经很久没有得分了,不知道我回答问题是不是不对。真是让人伤心。
      

  6.   

    http://www.codeguru.com/mfc_database/Ado_Aok.shtml
    http://www.codeguru.com/mfc_database/Ado_Aok_2.shtml在http://www.codeguru.com/mfc_database/index.shtml的ADO栏下还有很多。
      

  7.   

    文档上 叫我import 一个DLL 可是那一段  我怎么看 怎么晕,而且自己一试就出错。
    是不是文档上的错了,搞的好糊涂。
    除了import 那个DLL 我有没有其他的办法来 调用ADO的函数呢!
      

  8.   

    http://www.codeproject.com/database/caaadoclass1.asp
      

  9.   

    呵呵,我贴一段msdn的:
    该程序说明了如何从字段检索数值并将数值转换为 C++ 变量。它包括了在程序段(范例:无 Extensions 的 ADO)中所描述的功能。#define INITGUID
    #import "c:\Program Files\Common Files\System\ADO\msado15.dll" 
       no_namespace rename("EOF", "EndOfFile")
    #include <stdio.h>
    #include "icrsint.h"void dump_com_error(_com_error &e)
       {
    printf("Error\n");
    printf("\a\tCode = %08lx\n", e.Error());
    printf("\a\tCode meaning = %s", e.ErrorMessage());
    _bstr_t bstrSource(e.Source());
    _bstr_t bstrDescription(e.Description());
    printf("\a\tSource = %s\n", (LPCSTR) bstrSource);
    printf("\a\tDescription = %s\n", (LPCSTR) bstrDescription);
       }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, TRUE)
    END_ADO_BINDING()public:
       CHAR   m_szau_lname[41];
       ULONG   lau_lnameStatus;
       CHAR   m_szau_fname[41];
       ULONG   lau_fnameStatus;
    };VOID   main()
       {
       HRESULT hr;
       IADORecordBinding   *picRs = NULL;
       
       ::CoInitialize(NULL);   try 
          {
          _RecordsetPtr pRs.CreateInstance(__uuidof(Recordset));      CCustomRs rs;
          
          pRs->Open("select FirstName, LastName, Age from Employees", 
             "dsn=pubs;uid=sa;pwd=;", 
             adOpenStatic, adLockOptimistic, adCmdUnknown);
          
          if (FAILED(hr = pRs->QueryInterface(__uuidof(IADORecordBinding), 
                (LPVOID*)&picRs)))
             _com_issue_error(hr);
          
          if (FAILED(hr = picRs->BindToRecordset(&rs)))
             _com_issue_error(hr);      while (VARIANT_FALSE == pRs->EndOfFile)
             {
          // 处理 CCustomRs C++ 实例变量中的数据。         printf("\a\tName = %s \t%s", 
                (lau_fnameStatus == adFldOK ? m_szau_fname : "<NULL>"), 
                (lau_lnameStatus == adFldOK ? m_szau_lname): "<NULL>"));      // 更改 Recordset 的当前行。
          // 新当前行的 Recordset 数据将被
          // 自动取出并防止在 CCustomRs C++ 实例变量中
       
             pRs->MoveNext();
             }
          }
       catch (_com_error &e)
          {
          dump_com_error(e);
          }   if (picRs)
          picRs->Release();   CoUninitialize();
       };
      

  10.   

    定义绑定条目ADO VC++ Extensions 可将 Recordset 对象的字段映射到 C/C++ 变量,字段与变量的映射称为绑定条目。预处理宏用来定义数值、定长和变长变量的绑定条目。将 BEGIN_ADO_BINDING 和 END_ADO_BINDING 宏之间的绑定条目用括号括起。不要在绑定条目结尾使用逗号或分号,这些定界符仅限在宏中使用。为每个将被转换为 C/C++ 变量的字段指定一个绑定条目。使用适当的 ADO_FIXED_LENGTH_BINDING_ENTRY,ADO_NUMERIC_BINDING_ENTRY 或 ADO_VARIABLE_LENGTH_BINDING_ENTRY 宏。在宏的参数中,用序数指定将被提出的 Recordset 字段 — 0 标识第一字段,1 标识第二字段,依此类推。使用数据类型声明 C/C++ 变量。如果变量为数值,也可指定精度和范围。如果变量为变长变量(如字符串),则必须以字节指定变量的最大尺寸。如果需要,Recordset 字段值可被强制为该数据类型。指定临时的工作缓冲区,用来将字段值从 VARIANT 转换为 C/C++ 变量。缓冲区应至少与此 C/C++ 变量一样大。将布尔型修改参数设置为 TRUE 使 ADO 可更新绑定的字段,如只检查字段而不将其更改,可设置为 FALSE。VC++ Extensions 不保留有关字段的状态信息,因此必须指定 ADO 是否更改字段值(例如,由数据源保留的自动增值字段的值)。因此该字段的修改参数应设置为 FALSE。状态参数可告诉您从 Recordset 字段到 C 或 C++ 变量的转换是否成功以及变量的内容是否有效。该参数的两个最重要的值是 adFldOK (意味着转换成功)和 adFldNull (意味着字段是 NULL—无值可供转换)。首先检测该参数以决定 C 或 C++ 变量是否有效。例如,如果字段具有有效的行内容,状态将会是 adFldOK;如果移动到另一个字段为 NULL 的行,状态则将是 adFldNull。然而,C 或 C++ 变量的内容将不被更改 — 该变量将仍然包含上一行的字段值。将 Recordset 绑定到变量在应用程序中,调用 BindToRecordset 接口方法可使 Recordset 字段关联(或绑定)到 C/C++ 变量,无论何时更改 Recordset 对象的当前行,C/C++ 变量都将自动更新。头文件要使用 VC++ Extensions,请在应用程序中包含如下文件: #include <icrsint.h> 
    接口方法IADORecordBinding 接口具有使 Recordset 字段与 C/C++ 变量关联、添加新行和执行更新的方法。所有这三个方法都可使指针指向来自 CADORecordBinding 的类,该 CADORecordBinding 定义每个字段和变量之间的绑定。接口方法是: BindToRecordset(&binding) 
    调用该方法可关联变量与字段。 AddNew(&binding) 
    调用该方法可直接调用 ADO AddNew 方法。 Update(&binding) 
    调用该方法可直接调用 ADO Update 方法。预处理宏 BEGIN_ADO_BINDING(cls)
    ADO_FIXED_LENGTH_BINDING_ENTRY(Ordinal, DataType, Buffer, Status, Modify)
    ADO_NUMERIC_BINDING_ENTRY(Ordinal, DataType, Buffer, Precision, Scale, 
    Status, Modify)
    ADO_VARIABLE_LENGTH_BINDING_ENTRY(Ordinal, DataType, Buffer, Size, 
    Status, Modify)
    END_ADO_BINDING() 
    参数 说明 
    Cls 类,定义绑定条目,缓冲区,和 Recordset 对象。 
    Ordinal 按顺序的字段号码,0 标识第一字段,1 标识第二字段,依此类推。 
    DataType 储存已转换字段的变量的数据类型。 
    Buffer 缓冲区,用于将字段转换为变量。 
    Status 指示字段转换是否成功。 
    Modify 布尔标志;如果为 TRUE,则表明 ADO 可以更新关联的字段。 
    Precision 在数值变量中可被表现出的数字位数。 
    Scale 位于数值变量中的小数点后的位数。 
    Size 变长变量所需的字节数,诸如:字符串。 status 参数值 说明 
    AdFldOK 返回非 NULL 字段值。 
    AdFldBadAccessor 绑定无效。 
    AdFldCantConvertValue 由于符号不匹配和数据溢出以外的原因,值不能转换。 
    AdFldNull 返回 NULL。 
    AdFldTruncated 变长数据或数值型数字被截短。 
    AdFldSignMismatch 值带有符号而变量数据类型不带符号。 
    AdFldDataOverFlow 值大于在变量数据类型中的存储大小。 
    AdFldCantCreate 列类型未知并且字段已被打开。 
    AdFldUnavailable 不能决定字段值 — 例如在无默认值的新建、未指定的字段中。 
    AdFldPermissionDenied 更新时,不允许写入数据。 
    AdFldIntegrityViolation 更新时,字段值将破坏列的完整性。 
    AdFldSchemaViolation 更新时,字段值将破坏列方案。 
    AdFldBadStatus 更新时,无效的状态参数。 
    AdFldDefault 更新时,使用默认值。