iCAx开思工具箱

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 25365|回复: 3
打印 上一主题 下一主题

CAA与数据库的连接问题,向各位高手请教!

[复制链接]
跳转到指定楼层
楼主
发表于 2007-11-26 15:14:40 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上注册登录,享用更多网站功能!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
用CDataBase可以实现数据库的连接,但是用CRecordSet派生类来实现连接运行的时候不行,我采用

的是在MFC appwizard中创建CRecordSet的派生类,然后将该类的头文件和cpp文件添加到CAA工程

环境中,并在头文件中添加afxdb.h头文件。
1、头文件如下:
#include <afxdb.h>
class CCutDBSet : public CRecordset
{
public:
        CCutDBSet(CDatabase* pDatabase = NULL);
        DECLARE_DYNAMIC(CCutDBSet)
               
                // Field/Param Data
                //{{AFX_FIELD(CCutDBSet, CRecordset)
                CString        m_cutid;
            CString        m_cuttype;
        //}}AFX_FIELD
       
       
        // Overrides
        // ClassWizard generated virtual function overrides
        //{{AFX_VIRTUAL(CCutDBSet)
public:
        virtual CString GetDefaultConnect();    // Default connection string
        virtual CString GetDefaultSQL();    // Default SQL for Recordset
        virtual void DoFieldExchange(CFieldExchange* pFX);  // RFX support
        //}}AFX_VIRTUAL
       
        // Implementation
#ifdef _DEBUG
        virtual void AssertValid() const;
        virtual void Dump(CDumpContext& dc) const;
#endif
};

2、cpp 文件:
IMPLEMENT_DYNAMIC(CCutDBSet, CRecordset)

CCutDBSet::CCutDBSet(CDatabase* pdb)
: CRecordset(pdb)
{
        //{{AFX_FIELD_INIT(CCutDBSet)
        m_cutid = _T("");
        m_cuttype = _T("");
        m_nFields = 2;
        //}}AFX_FIELD_INIT
        m_nDefaultType = dynaset;
}


CString CCutDBSet::GetDefaultConnect()
{
        return _T("ODBC;DSN=cutDataBase");
}

CString CCutDBSet::GetDefaultSQL()
{
        return _T("[cutPara]");
}

void CCutDBSet:oFieldExchange(CFieldExchange* pFX)
{
        //{{AFX_FIELD_MAP(CCutDBSet)
        pFX->SetFieldType(CFieldExchange:utputColumn);
        RFX_Text(pFX, _T("[cutid]"), m_cutid);
        RFX_Text(pFX, _T("[cuttype]"), m_cuttype);
        //}}AFX_FIELD_MAP
}

/////////////////////////////////////////////////////////////////////////////
// CCutDBSet diagnostics

#ifdef _DEBUG
void CCutDBSet::AssertValid() const
{
        CRecordset::AssertValid();
}

void CCutDBSet:ump(CDumpContext& dc) const
{
        CRecordset:ump(dc);
}
#endif //_DEBUG
3、在其他地方调用
m_pSet = new CCutDBSet(NULL);
m_pSet->m_strFilter="[cut].[cutid]";
m_pSet->Open();

问题:编译没有问题,运行时产生错误,请高手指导!不胜感激!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 支持支持
地板
发表于 2008-2-19 21:35:15 | 只看该作者

马上注册登录,享用更多网站功能!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
板凳
发表于 2008-1-2 18:05:08 | 只看该作者

马上注册登录,享用更多网站功能!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
沙发
 楼主| 发表于 2007-11-29 10:33:15 | 只看该作者

马上注册登录,享用更多网站功能!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手板模型制作,在线3D打印服务

QQ|小黑屋|手机版|开思工具箱 CAD工具箱_CAM工具箱  

GMT+8, 2024-12-24 02:27 , Processed in 0.013950 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

快速回复 返回顶部 返回列表