网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
Visual C++中为普通程序添加ODBC应用
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式
;栏选择刚注册的"RP97"数据源,点击"OK"后选择该数据库的一个表,点击"OK"在"ClassView"里就多了一个以CRecordSet为基类的新类"CODBCSet"。下面三个函数完成了数据库各级元素的绑定工作:

CString CODBCSet::GetDefaultConnect()
{
 return _T("ODBC;DSN=RP97");
}

CString CODBCSet::GetDefaultSQL()
{
 return _T("[单据表]");
}

void CODBCSet::DoFieldExchange(CFieldExchange* pFX)
{
 //{{AFX_FIELD_MAP(CODBCSet)
 pFX->SetFieldType(CFieldExchange::outputColumn);
 RFX_Text(pFX, _T("[单据ID]"), m_column1);
 RFX_Text(pFX, _T("[单据名称]"), m_column2);
 RFX_Text(pFX, _T("[报帐人]"), m_column3);
 //}}AFX_FIELD_MAP
}

  (五)按同样的方法再添加一个基于"generic CWnd"的新类"CConnectDB"。在该类的源文件里添加对"ODBCSet.h"的引用:#include "ODBCSet.h"。在该类的头文件的"class CconnectDB"前添加class CODBCSet;并在该类里添加公有型成员变量和函数:

CDatabase m_dbData;
CODBCSet* m_pSet;
void CConnectDB::Initial()
{
 //打开数据源RP97
 CString os=_T("odbc; dsn=RP97");
 m_dbData.Open(NULL,FALSE,FALSE,0);
 m_pSet=new CODBCSet(&m_dbData);
 //通过SQL结构化查询语言打开RP97里的单据表
 CString sql="SELECT * FROM 单据表";
 m_pSet->Open(AFX_DB_USE_DEFAULT_TYPE,sql);
}


  (六)在Form上添加一个"测试"按钮及其响应函数OnTest():

void CNormalView::OnTest()
{
 CConnectDB connectDB;
 //执行完Initial()后m_pSet指针才不为空,方可安全使用。
 connectDB.Initial();
 if(connectDB.m_pSet==NULL)
  return;
 connectDB.m_pSet->MoveFirst();
 CString str=connectDB.m_pSet->m_column3;
 AfxMessageBox(str);
}

  最后在该文件开始处添加两个引用:

#include "ConnectDB.h"
#include "ODBCSet.h"

  四、 运行与测试

  编译运行程序,点击"测试"按钮,就会将"RP97"数据库的"单据表"的第一条记录的"报帐人"字段所在的内容通过对话框弹出来。

  小结:

  本程序的关键在于对数据库指针m_pSet的获取,当类CConnectDB 的成员函数Initial()被执行完时,m_pSet就已被获取到了,而在此之前该指针是空的,是不能使用的,所以在实际应用中必须保证在使用m_pSet之前调用过函数Initial()。当m_pSet被获取到之后,就可以想其他ODBC应用程序一样使用CrecordSet类里的各种函数对数据库进行各种需要的操作和管理了。

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号