几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量  


返回   几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 » 仿射空间:CAX软件开发(三)二次开发与程序设计 » CAD二次开发 » AutoCAD二次开发 » ObjectARX(C++)
用户名
密码
注册 帮助 会员 日历 银行 搜索 今日新帖 标记论坛为已读


回复
 
主题工具 搜索本主题 显示模式
旧 2009-04-16, 06:41 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】[转帖]数据库的使用问题

[转帖]数据库的使用问题
[转帖]数据库的使用问题
关于数据库的使用
1994年美国的制造企业80%以上使用了marpii ,在中国,目前还不到1%的制造企业使用。
可以预见,对于中国制造行业,在cad\cam建设的基础上,管理系统在近几年会有长足的发展,这其中离不开数据库的使用;
相对于过去的使用文本文件或其它格式化文件进行数据存贮、查询等方式而言,数据库编程技术有编程效率高(数据库技术的一行代码可以顶一大段程序)、运行效率高、运行质量高等优点。
市场越来越成熟、竞争越来越激烈,作为软件公司或软件人,必须为用户提供高度智能化(在各种计算过程中应当智能地使用各种数据库)、同其它软件的高度可集成性(通过使用数据库这种放之四海而皆准的方式及使用组件技术)的软件。当然,软件本身所有的其它性能也是不能丢的。
一、ado简介
ado(activex data object)是microsoft数据库应用程序开发的新接口,是建立在ole db之上的高层数据库访问技术,请不必为此担心,即使你对ole db,com不了解也能轻松对付ado,因为它非常简单易用,甚至比你以往所接触的odbc api、dao、rdo都要容易使用,并不失灵活性。本文将详细地介绍在vc下如何使用ado来进行数据库应用程序开发,并给出示例代码。
本文示例代码
二、基本流程
万事开头难,任何一种新技术对于初学者来说最重要的还是“入门”,掌握其要点。让我们来看看ado数据库开发的基本流程吧!
(1)初始化com库,引入ado库定义文件
(2)用connection对象连接数据库
(3)利用建立好的连接,通过connection、command对象执行sql命令,或利用recordset对象取得结果记录集进行查询、处理。
(4)使用完毕后关闭连接释放对象。
准备工作:
为了大家都能测试本文提供的例子,我们采用access数据库,您也可以直接在我们提供的示例代码中找到这个test.mdb。
下面我们将详细介绍上述步骤并给出相关代码。
【1】com库的初始化
我们可以使用afxoleinit()来初始化com库,这项工作通常在cwinapp::initinstance()的重载函数中完成,请看如下代码:
bool cadotest1app::initinstance()
{
afxoleinit();
......
【2】用#import指令引入ado类型库
我们在stdafx.h中加入如下语句:(stdafx.h这个文件哪里可以找到?你可以在fileview中的header files里找到)
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("eof","adoeof")
这一语句有何作用呢?其最终作用同我们熟悉的#include类似,编译的时候系统会为我们生成msado15.tlh,ado15.tli两个c++头文件来定义ado库。
几点说明:
(1) 您的环境中msado15.dll不一定在这个目录下,请按实际情况修改
(2) 在编译的时候肯能会出现如下警告,对此微软在msdn中作了说明,并建议我们不要理会这个警告。
msado15.tlh(405) : warning c4146: unary minus operator applied to unsigned type, result still unsigned
【3】创建connection对象并连接数据库
首先我们需要添加一个指向connection对象的指针:
_connectionptr m_pconnection;
下面的代码演示了如何创建connection对象实例及如何连接数据库并进行异常捕捉。
bool cadotest1dlg:ninitdialog()
{
cdialog:ninitdialog();
hresult hr;
try
{
hr = m_pconnection.createinstance("adodb.connection");///创建connection对象
if(succeeded(hr))
{
hr = m_pconnection->open("provider=microsoft.jet.oledb.4.0;data source=test.mdb","","",admodeunknown);///连接数据库
///上面一句中连接字串中的provider是针对access
不错
好东东,留名收藏
我是核潜艇
不错
_connectionptr这个我用的时候为什么编译时说没定义呢?这个东东在哪个文件中定义的?
为什么在arx工程中,如果在对话框类中声明_connectionptr程序没出错,如果在自己建立的一般c++类中声明就出错?
准备看下一篇。
好东西,我做个记号吧
i love sky
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)
回复


主题工具 搜索本主题
搜索本主题:

高级搜索
显示模式

发帖规则
不可以发表新主题
不可以回复主题
不可以上传附件
不可以编辑您的帖子

vB 代码开启
[IMG]代码开启
HTML代码关闭



所有的时间均为北京时间。 现在的时间是 01:18 AM.


于2004年创办,几何尺寸与公差论坛"致力于产品几何量公差标准GD&T | GPS研究/CAD设计/CAM加工/CMM测量"。免责声明:论坛严禁发布色情反动言论及有关违反国家法律法规内容!情节严重者提供其IP,并配合相关部门进行严厉查处,若內容有涉及侵权,请立即联系我们QQ:44671734。注:此论坛须管理员验证方可发帖。
沪ICP备06057009号-2
更多