none
VS2008 ADO RRS feed

  • 问题

  •     在VC6.0中添加一个Activex控件会自动加载这个控件的封装类,我在VS2008中添加了一个ADO data control控件,为这个控件添加了一个变量,自动生成了adodc.cpp和adodc.h,类视图里也自动添加了一个CAdodc类,但是当我调用定义的变量调用SetRecordSoruce()时并没有找到,(在网上查说该函数在VS2008中为put_recordsource 但是也没有) .希望哪个大牛指点一下.
    • 已移动 Vicky SongMicrosoft employee 2011年10月31日 8:53 VC++ issue (发件人:Visual Studio 相关讨论(Visual Studio 2010以前版本))
    2011年10月30日 11:29

全部回复

  • 看看这篇文章会不会对你有帮助

    一个ado的封装类

    无需控件即可使用

    http://blog.csdn.net/xianglitian/article/details/5617173


    新浪微博http://weibo.com/xianglitian,欢迎围观
    2011年10月31日 0:44
  • CAdodc ado;

    ado.SetRecordSource("SQL");

    有可能是你的添加方式不对。


    Keep it simple
    2011年10月31日 3:32
  • CAdodc ado;

    ado.SetRecordSource("SQL");

    有可能是你的添加方式不对。


    Keep it simple


    添加方法不对是指?我是右键对话框—>添加ActiveX控件—>ado data control 6.0  然后右击控件,添加变量,然后就自动生成了包装类,但是里面没有对应的接口 头文件如下:

    #pragma once

    // 计算机生成了由 Microsoft Visual C++ 创建的 IDispatch 包装类

    // 注意: 不要修改此文件的内容。如果此类由
    //  Microsoft Visual C++ 重新生成,您的修改将被覆盖。

    /////////////////////////////////////////////////////////////////////////////
    // CAdodc 包装类

    class CAdodc : public CWnd
    {
    protected:
     DECLARE_DYNCREATE(CAdodc)
    public:
     CLSID const& GetClsid()
     {
      static CLSID const clsid
       = { 0x67397AA3, 0x7FB1, 0x11D0, { 0xB1, 0x48, 0x0, 0xA0, 0xC9, 0x22, 0xE8, 0x20 } };
      return clsid;
     }
     virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle,
          const RECT& rect, CWnd* pParentWnd, UINT nID,
          CCreateContext* pContext = NULL)
     {
      return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID);
     }

        BOOL Create(LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd,
        UINT nID, CFile* pPersist = NULL, BOOL bStorage = FALSE,
        BSTR bstrLicKey = NULL)
     {
      return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID,
      pPersist, bStorage, bstrLicKey);
     }

    // 属性
    public:
    enum
    {
        adDoMoveFirst = 0,
        adStayBOF = 1
    }BOFActionEnum;
    enum
    {
        adDoMoveLast = 0,
        adStayEOF = 1,
        adDoAddNew = 2
    }EOFActionEnum;
    enum
    {
        adFlatBevel = 0,
        ad3DBevel = 1
    }AppearanceEnum;
    enum
    {
        adHorizontal = 0,
        adVertical = 1
    }OrientationEnum;
    enum
    {
        adConnectTypeUnknown = 0,
        adConnectTypeOledb = 1,
        adConnectTypeOledbFile = 2,
        adConnectTypeOdbc = 3
    }ConnectStringTypeEnum;
    enum
    {
        ERRADODC_ERRORINFO = 25020,
        ERRADODC_SETMODE = 25021,
        ERRADODC_SETCONNECTTIMEOUT = 25022,
        ERRADODC_SETCURSORLOCATION = 25023,
        ERRADODC_SETCOMMANDTIMEOUT = 25024,
        ERRADODC_SETCACHESIZE = 25025,
        ERRADODC_SETMAXRECORDS = 25026
    }AdodcErrorEnum;
    enum
    {
        adOpenKeyset = 1,
        adOpenDynamic = 2,
        adOpenStatic = 3
    }CursorTypeEnum;
    enum
    {
        adUseServer = 2,
        adUseClient = 3
    }CursorLocationEnum;
    enum
    {
        adCmdUnknown = 8,
        adCmdText = 1,
        adCmdTable = 2,
        adCmdStoredProc = 4
    }CommandTypeEnum;


    // 操作
    public:


    };

    2011年10月31日 8:15
  • 谢谢啊   但是我想知道问题出在哪
    2011年10月31日 8:17
  • 尝试 put_RecordSource 或者 set_RecordSource。

    注意大小写。


    我也有自己的签名档哦!
    2011年10月31日 9:21
  • VC6 用ADO有个异常 这个我知道

     

    但是 你这样封装我头一次看到

     

    如果不嫌弃 我原来封装好的 可以给你

    program_code@sohu.com

    Connection Recordset command

     

    我原来这个样子封装的 你用COM封装的 我第一次看到 不好意思见笑了

    2011年11月2日 15:20