明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3608|回复: 4

[求助]ObjectARX连接Access数据库得程序调试问题

[复制链接]
发表于 2008-5-15 22:16:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2008-5-16 6:50:48 编辑

我是个新手,以前没有学过AutoCAD和ObjectARX,也没有学过Access,希望大家帮帮忙!

我装了AutoCAD2002和ObjectARX2002,建的工程是ObjectARX2000/2000i/2002AppWizard,环境为VC++6.0,

希望通过程序打开已建好的Access数据库,并用里面的数据来建模。可是在程序的打开数据库这部分就有问题。总出现个窗口:

显示:未处理的异常 E06D7363(e06d7363),地址:7C812A7Bh

我的程序如下,还有我自己做的注释

void DrawFunction()//这个函数为命令调用的函数
{
 struct resbuf *result;
 int rc,flags;
 result =ads_newrb(RTSTR);
 
  result->resval.rstring=NULL;
 flags=2;//显示“Type it”按钮
 rc=acedGetFileD("打开数据文件",//标题
  "e:/project/database",//NULL,//默认路径
  "mdb;*",//默认扩展名:NULL代表“*
  flags, //控件标志
  result); //用户选择的路径
 //如果acedgetFileD()调用成功,就返回RTNORM,否则返回RTERROR
 if(rc==RTNORM)  //ads_getFileD()调用成功
  rc=acedArxLoad(result->resval.rstring);
 CDaoDatabase db;
 CString path=result->resval.rstring; //将路径保存在字符串path中
 //db.Open(path,false,false,_T("")); //打开数据库
 db.Open(path,false,false,_T(""));
 CDaoRecordset att_rs(&db);
 att_rs.Open(dbOpenDynaset,_T("select * from dian"),0);

//打开数据集,dian为我建的数据库里面的一个表
 int iRecords=att_rs.GetRecordCount();//统计记录个数
 if(!att_rs.IsBOF())
  att_rs.MoveFirst();//把指针移到开始处
 while(!att_rs.IsEOF())
 {
       createNewLayer();//调用建立新图层函数

  COleVariant vid=att_rs.GetFieldValue("id");// 程序结构变量提取坐标数据库字段值
     COleVariant vx=att_rs.GetFieldValue("X");
  COleVariant vy=att_rs.GetFieldValue("Y");
  COleVariant vz=att_rs.GetFieldValue("Z");
      //Temtag.endist=vEndDist.fltVal;
     //Sprintf(Temtag.name,"%s",vName.bstrVal);
  
  //buffer.onlyid=vid.bstrVal;
  //buffer.x=vx.fltVal;
        //buffer.y=vy.fltVal;
  //buffer.z=vz.fltVal;
  //i++;
  att_rs.MoveNext();
 }
}

谢谢了!非常感谢大家了!

发表于 2008-5-20 15:33:00 | 显示全部楼层

就数据库操作呗!用ADO 或者ODBC呗。

如果用ODBC 先建立数据源 然后

CDatabase getd;
CRecordset re(&getd);
CString su;

getd.Open(_T("Date"));  //你的数据源名称
su.Format("DELETE FROM GanWei WHERE NaiZhangDuan=%d",NZD);//这里就是SQL语句呗
getd.ExecuteSQL(su);
getd.Close();

ADO也一样,逐条查询方便

VC+ARX讨论群 58756233

 楼主| 发表于 2008-5-20 22:06:00 | 显示全部楼层

非常感谢哦 ,还留了群号给我 !3Q3Q!

 楼主| 发表于 2008-5-22 07:20:00 | 显示全部楼层
这个问题已经解决了,呵呵,3Q!
发表于 2009-8-10 11:29:00 | 显示全部楼层

我是个新手,刚刚入门,也遇到ObjectARX连接Access数据库的问题,现在很是烦恼,想向各位高手请教一下,谢谢!

你们能给我举个“ObjectARX连接Access数据库”的简单的例子:例如:我在Access里输入了两个坐标(100,100,0)(1000,500,0),然后在ObjectARX上读取这两个数据画一根直线,那程序代码怎么写啊?该怎么操作啊?我是新手,麻烦各位高手能一步一步地给我解析一下,谢谢啦!

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 14:48 , Processed in 0.169462 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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