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


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


回复
 
主题工具 搜索本主题 显示模式
旧 2009-04-19, 07:11 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】斑竹,我问了好多问题,天天到这里期望有个回应,可是都落空,如今我又有一些问题:

斑竹,我问了好多问题,天天到这里期望有个回应,可是都落空,如今我又有一些问题:
www.dimcax.com
斑竹,我问了好多问题,天天到这里期望有个回应,可是都落空,如今我又有一些问题:
斑竹,我问了好多问题,天天到这里期望有个回应,可是都落空,如今我又有一些问题:
1 怎样和oracle数据库连接
2 怎样建立自己的oracle数据库
斑竹,你可以介绍一些有关这方面的书籍吗?
这是与autocad无关的问题.你直接去其他编程网看就是了.很容易找到的.在微软的网上也有.
to sophie_wzh:关系型数据库服务器oracle和sql server
确实,我早看到了你的帖子,但你的问题提得太大,回复起来,给我的感觉象是老虎吃天,无从下口。我不知道你对mfc的odbc数据库api熟悉程度,若要从头开始讲解,即使你很熟悉c++编程,odbc api也可以写满整整一本书。我本来准备为你用objectarx编写一个完整的(当然是仅具有简单功能的)与autocad相关的数据库应用程序例子,这需要比较长的时间。既然你急于获取有关信息,我只有停止例程的编写。以下我将这个例程的思路大致叙述一下,同时简单回答你的问题。
首先,mfc并未封装ado数据库接口,置顶帖子中有关于ado编程的例子,修改其中的连接字符串(connectionstring)就可以与通过odbc建立与oracle数据库的连接。我认为你想要使用mfc封装的odbc api接口。这样,首先你要准备好odbc数据源(在“控制面板”中配置odbc数据源,这个应该不需要多讲吧)。至于odbc编程,在这也没办法作深入细致的介绍,以下结合一段最简单的代码作个入门介绍:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <sql.h> //odbc api编程必须包含的文件
#include <sqlext.h>
void odbcsample()
{
retcode rcd; //sql函数返回信息
henv henv; //odbc环境句柄
hdbc hdbc; //odbc数据连接句柄
hstmt hstmt; //odbc sql语句句柄
char recieve[50]; //该变量存放sql语句返回数据
sdword sdatalen; //sql返回的数据长度
unsigned char constr[256]; //sql语句输出字符串
cstring yourdsn; //数据源名称
cstring yoursql; //要使用的sql语句
rcd = ::sqlallocenv(&henv); //第一步,分配数据环境句柄
if(rcd == sql_success)
if(::sqlallocconnect(henv,&hdbc) == sql_success) //2、分配odbc连接句柄
if(::sqldriverconnect(hdbc,0,(unsigned char*)yourdsn,
sql_nts,constr,256,null,sql_drive_noprompt) == sql_success)//3、建立odbc连接
if(::sqlallocstmt(hdbc,&hstmt) == sql_success)//4、分配sql语句句柄
if(::sqlexecdirect(hstmt,(unsigned char *)
yoursql,sql_nts) //5、执行sql命令
for(rcd=::sqlfetch(hstmt);rcd==sql_success;rcd=::sqlfetch(hstmt))//6、使用循环,获取sql语句执行结果
{
::sqlgetdata(hstmt,1,sql_c_char,recieve,50,&sdatalen);//7、保存sql返回结果
}
::sqlfreestmt(hstmt); //以下释放sql资源
::sqldisconnect(hdbc);
::sqlfreeconnect(hdbc);
::sqlfreeenv(henv);
}
通过设计复杂的sql语句,可以完成建立数据表,查询、编辑数据等功能,当然要实现更为复杂的功能,可能还需要利用cdatabase和crecordset等对象。以上是odbc api编程方法,由于它不支持非关系型数据库和面向对象技术,通常不建议在新的主流代码中使用,好的数据库应用程序尽量使用ole db技术。ole db是建立在odbc之上,又扩展了odbc的功能的ole编程接口,它与odbc编程有很大的区别,ole db广泛地使用com和com接口。
掌握c++的数据库访问技术后,在autocad objectarx编程中,可以使用ase(autocad sql extended)数据交换技术在dwg图形文件中方便地完成与数据库之间的数据交换。
关于在arx中使用ole db数据库编程技术和ase数据交换技术,由于内容太多,希望以后有时间另外写文章介绍。
最后,如何用c++代码建立新的空白oracle或sql server数据库,我没有做过(每次都是手工建立数据库,然后用代码进行数据库操作),不敢妄言。
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)
回复


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

高级搜索
显示模式

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

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



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


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