找回密码 注册 QQ登录
一站式解决方案

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
查看: 17330|回复: 3
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
1
发表于 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空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
 楼主| 发表于 2007-11-29 10:33:15 | 只看该作者

马上注册,结交更多同行朋友,交流,分享,学习。

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

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

马上注册,结交更多同行朋友,交流,分享,学习。

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

x
4
发表于 2008-2-19 21:35:15 | 只看该作者

马上注册,结交更多同行朋友,交流,分享,学习。

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

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

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2024-11-19 17:25 , Processed in 0.029234 second(s), 12 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

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