资源描述:
《机械cad软件vc_数据库应用程序设计技术》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、北京石油化工学院学报第11卷第1期Vol.11No.1JournalofBeijingInstituteof2003年3月Mar.2003Petro2chemicalTechnology机械CAD软件VC++数据库应用程序设计技术宋金明陈家庆秦乾军(北京石油化工学院机械工程系,北京102617)摘要真正的机械CAD系统软件离不开对数据库的操作。结合小型数据库MirosoftAccess,针对用VisualC++开发机械CAD系统软件时进行数据库操作的一些关键问题进行了阐述。基于对ODBC和DAO的比较认识,介绍了如何用DAO直接读取单表数据库以及如何用DAO和ODBC读取ODB
2、C所管理的单表数据库;基于对多表操作进行的一些探讨,提出了处理多表操作的两种方法;此外还对ODBC的自动注册问题提出了解决方案。所给出的一些程序代码能对解决机械CAD系统软件开发过程中的数据库操作问题起到有效的参照和指导作用。关键词机械计算机辅助设计;VisualC++;数据库操作中图法分类号TH457;TP391172Windows时代的到来使得机械CAD系统软1应用VisualC++开发数据库件克服了DOS时代所固有的种种致命缺陷,Vi2的一般问题sualC++因其有强大的数值计算能力、图形处理能力以及优良的面向对象特性而成为世界范111VisualC++开发数据库的特点围
3、内各种机械工程软件系统的主导开发工VisualC++可以支持多种数据库管理系[1]具;另一方面,开发机械CAD系统软件时往统(DBMS),尤其是MirosoftAccess、MicrosoftSQL往要涉及到大量数据表格和线图的查找、处理Server、OracleServer和SybaseSQLServer等流行工作,如果在每次运行程序时都要进行人工查[2]的DBMS;许多DBMS都提供SQL语言接口,找这些数据,不仅会给用户带来很大麻烦,而且而SQL语言可以直接在VisualC++系统中运会使得所开发的软件显得极不专业。采用数据行。同时VisualC++系统还包含了开发数据库
4、编程技术,不仅可以把大量的数据表格预先库应用的全方位支持,其对数据库的支持已经予以存储,在需要某个数据时通过数据库查找,可以与PowerBuilder、Delphi、VisualBasic、FoxPro而且可以将用户设计过程中一些必要设计数据等系统软件相媲美,甚至在对某些特性的支持予以存储,以方便后续设计过程。上还超过了这些技术[3]。鉴于多数机械CAD系统软件的开发都会用VisualC++来开发数据库应用程序可涉及到对各种类型数据库的处理,因而对大多以分为两类:一类是在用VisualC++开发的应数机械CAD软件开发人员而言,如何用Visual用程序中需要对数据库进行访问;另
5、一类是利C++来有效地开发数据库应用程序是一个比用VisualC++作为数据库应用程序的前端开较困难但却非常现实的问题。笔者在此结合二发工具。相比较而言,机械CAD软件开发人员级圆柱齿轮减速器CAD系统软件的开发,阐述更为关注第一类问题,在VisualC++中提供了使用VisualC++开发数据库应用程序过程中多种访问技术———ODBC、DAO、OLEDB等,以的一些关键问题。达到对所需数据进行有效读、写的目的,其中ODBC技术、DAO技术在VisualC++中应用最收稿日期:2002209211广泛。第1期宋金明等1机械CAD软件VC++数据库应用程序设计技术23112ODB
6、C与DAO的比较gearshift.mdb”);ODBC和DAO数据库的操作可分为ODBCif(mpDB.IsOpen())API、MFCODBC和DAOAPI、MFCDAO两大类,{其中ODBCAPI和DAOAPI支持数据库的低层CStringtablename=“V带轮基准直径访问,数据库编程也比较麻烦,开发机械CAD系列”;//所提取的数据库表名,此表软件时一般掌握MFCODBC和MFCDAO即可。所有列数据类型都是字符型。DAO与ODBC类的许多方面都比较相似,CStringselesql;只要用户掌握了ODBC,就很容易学会使用CStringdatatext;DAO;
7、同时用户也可以很轻松地把数据库应用COleVariantvarname;程序从ODBC移植到DAO。但二者的区别也相mOpenTable.Open(tablename);当明显:DAO不仅可以通过ODBC驱动程序访intfieldcount=mOpenTable.GetField2问ODBC数据源,而且可以通过MicrosoftJet引Count();擎直接访问MicrosoftAccess、VisualFoxPro、Para2intrecordcount=mOpenTable.Ge2dox