iCAx开思工具箱

标题: 【讨论】UG中用ADO访问数据库搞的很郁闷 [打印本页]

作者: 深夜摔键盘    时间: 2004-8-30 11:35
标题: 【讨论】UG中用ADO访问数据库搞的很郁闷
引入MFC,数据库的ADO接口,程序完成后,运行时会出错。但是单步跟踪调试,又找不出错误!
譬如用ADO访问ACCESS时,与数据库连接没什么问题,但是想编程创建一个数据表时就会出现问题。调试时,单步跟踪,表的确被创建了。但是程序在运行时就报错了。
今天搞了一上午,症结所在还是没找到。还请各位指点!!!
作者: 深夜摔键盘    时间: 2004-8-30 11:42
代码应该没错误。以前在MFC程序中我调试过。
数据库连接没问题,创建表时,有问题!不得其解,恳请各位指教!!!!!
CoInitialize(NULL);  
   _ConnectionPtr  m_pConnection;  
      m_pConnection.CreateInstance(__uuidof(Connection));  
  
    try  
   {   
   m_pConnection->Open("rovider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb","","",adModeUnknown);  
      
   }  
   catch(_com_error e)  
   {  
     AfxMessageBox("数据库连接失败");  
     return ;  
   }  
  
   _variant_t RecordsAffected;  
    try  
   {   
     m_pConnection->Execute("CREATE TABLE new(PointId INTEGER,X DOUBLE,Y DOUBLE,Z DOUBLE,BoxId INTEGER)",  
                 [$RecordsAffected,adCmdText)]
    }  
  
    catch(_com_error e)  
   {  
     AfxMessageBox("创建表失败");  
     return ;  
   }  
  
     CoUninitialize();
作者: 深夜摔键盘    时间: 2004-8-30 17:11

作者: 深夜摔键盘    时间: 2004-8-30 22:34

已搞定!!!!!!
作者: mizzle    时间: 2004-8-31 09:28
怎么搞定的,上来说说,大家也好学习一下
作者: 深夜摔键盘    时间: 2004-8-31 11:49
一个小错误
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb
  
一定要注意这个!!!!!test.mdb要有明确的路径。相对路径会引起混乱
作者: fourwood    时间: 2004-8-31 22:31
test.mdb应该和DLL在同一个目录下吧?
作者: 深夜摔键盘    时间: 2004-9-1 10:49
在VC中打开UG进行调试时,test.mdb是与application和startup文件夹应该在相同目录中。
  
非调试状态下,打开UG,运行这段代码,test.mdb应该在Access的工作目录中(我的ACCESS工作目录是“我的文档"),此时如果不注意,就会产生错觉,以为test.mdb没有被创建,然后无论你怎样修改代码,运行程序,都会报错。如果你的异常报错搞的很详细的话,可能会豁然醒悟,否则,也可能会象我一样,搞一天也没头绪。
作者: wgwang    时间: 2004-9-1 21:07
好,谢谢分享经验




欢迎光临 iCAx开思工具箱 (https://t.icax.org/) Powered by Discuz! X3.3