[求助]ObjectARX连接Access数据库得程序调试问题
本帖最后由 作者 于 2008-5-16 6:50:48 编辑 <br /><br /> <p>我是个新手,以前没有学过AutoCAD和ObjectARX,也没有学过Access,希望大家帮帮忙!</p><p>我装了AutoCAD2002和ObjectARX2002,建的工程是ObjectARX2000/2000i/2002AppWizard,环境为VC++6.0,</p><p>希望通过程序打开已建好的Access数据库,并用里面的数据来建模。可是在程序的打开数据库这部分就有问题。总出现个窗口:</p><p>显示:未处理的异常 E06D7363(e06d7363),地址:7C812A7Bh</p><p>我的程序如下,还有我自己做的注释</p><p>void DrawFunction()//这个函数为命令调用的函数<br/>{<br/><font color="#dd2248" size="4"> struct resbuf *result;<br/> int rc,flags;<br/> result =ads_newrb(RTSTR);<br/> <br/> result->resval.rstring=NULL;<br/> flags=2<font color="#000000">;//显示“Type it”按钮</font><br/> rc=acedGetFileD("打开数据文件<font color="#000000">",//标题<br/></font> "e:/project/database<font color="#000000">",//NULL,//默认路径</font><br/> "mdb<font color="#000000"><font color="#e61a6b">;*",</font>//默认扩展名:NULL代表“*<br/></font> flags, <font color="#000000">//控件标志</font><br/> result); <font color="#000000">//用户选择的路径<br/></font> <font color="#000000">//如果acedgetFileD()调用成功,就返回RTNORM,否则返回RTERROR</font><br/> if(rc==RTNORM) <font color="#000000">//ads_getFileD()调用成功<br/></font> rc=acedArxLoad(result->resval.rstring);<br/> CDaoDatabase db;<br/> CString path=result->resval.rstring; <font color="#000000">//将路径保存在字符串path中<br/></font> //db.Open(path,false,false,_T("")); <font color="#000000">//打开数据库</font><br/> db.Open(path,false,false,_T(""));<br/> CDaoRecordset att_rs(&db);<br/> att_rs.Open(dbOpenDynaset,_T("select * from dian"),0);</font></p><p><font color="#000000"><font size="4">//打开数据集,dian为我建的数据库里面的一个表</font><br/></font> int iRecords=att_rs.GetRecordCount();//统计记录个数<br/> if(!att_rs.IsBOF())<br/> att_rs.MoveFirst();//把指针移到开始处<br/> while(!att_rs.IsEOF())<br/> {<br/> createNewLayer();//调用建立新图层函数</p><p> COleVariant vid=att_rs.GetFieldValue("id");// 程序结构变量提取坐标数据库字段值<br/> COleVariant vx=att_rs.GetFieldValue("X");<br/> COleVariant vy=att_rs.GetFieldValue("Y");<br/> COleVariant vz=att_rs.GetFieldValue("Z");<br/> //Temtag.endist=vEndDist.fltVal;<br/> //Sprintf(Temtag.name,"%s",vName.bstrVal);<br/> <br/> //buffer.onlyid=vid.bstrVal;<br/> //buffer.x=vx.fltVal;<br/> //buffer.y=vy.fltVal;<br/> //buffer.z=vz.fltVal;<br/> //i++;<br/> att_rs.MoveNext();<br/> }<br/>}</p><p>谢谢了!非常感谢大家了!</p> <p>就数据库操作呗!用ADO 或者ODBC呗。</p><p>如果用ODBC 先建立数据源 然后</p><p>CDatabase getd;<br/>CRecordset re(&getd);<br/>CString su;</p><p>getd.Open(_T("Date")); //你的数据源名称<br/>su.Format("DELETE FROM GanWei WHERE NaiZhangDuan=%d",NZD);//这里就是SQL语句呗<br/>getd.ExecuteSQL(su); <br/>getd.Close();</p><p>ADO也一样,逐条查询方便</p><p>VC+ARX讨论群 58756233</p> <p>非常感谢哦 ,还留了群号给我 !3Q3Q!</p> 这个问题已经解决了,呵呵,3Q! <p><strong>我是个新手,刚刚入门,也遇到ObjectARX连接Access数据库的问题,现在很是烦恼,想向各位高手请教一下,谢谢!</strong></p><p><strong>你们能给我举个“ObjectARX连接Access数据库”的简单的例子:例如:我在Access里输入了两个坐标(100,100,0)(1000,500,0),然后在ObjectARX上读取这两个数据画一根直线,那程序代码怎么写啊?该怎么操作啊?我是新手,麻烦各位高手能一步一步地给我解析一下,谢谢啦!</strong></p>
页:
[1]