CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  数据库

Dao连接访问数据库问题

楼主nicolas(nicolas)2001-10-15 10:55:40 在 VC/MFC / 数据库 提问

我的mdb是在access97下的,转换到access2000下后,我过去的程序就出现访问时错误:  
  错误信息如下:  
  DAO   error   3433,SOURCE=DAO.Workspace,DESCR=Unrecognized   database   format  
  'f:\vod\program.mdb'  
   
  大家发表意见。 问题点数:120、回复次数:12Top

1 楼myb123(myb123)回复于 2001-10-15 11:02:36 得分 10

因Access97用的是DAO3.5驱动包,若用Access2000,应在你的机器下安装DAO3.6驱动包.  
  DAO3.5在visual   studio这套碟中可找到,DAO3.6则要在其它地方找,可能在微软的网站,或CSDN中可找到吧!Top

2 楼wmouse(山水)回复于 2001-10-15 11:04:12 得分 10

如果找不到驱动,就把Access2000转换成Access97Top

3 楼kane_yj()回复于 2001-10-15 11:05:30 得分 100

我以前的回答,还有别人的,一同粘来  
   
  access97用的是microsoft   jet3.0数据引擎,单独在裸机上安装执行你的程序肯定不行,不管你的程序是static连接的还是怎样;安装microsoft   jet3.0数据引擎时在你的机子上安装了相应的com组件,所以不单单是几个dll的问题;安装MDAC2.6也不行地  
  解决的方法:  
  1、安装microsoft   jet3.5数据引擎,visual   studio   6.0(10片)的第六或七张上有它,你可以拿来装一下---ok!  
  2、安装vc++---当然,这不是好方法;  
  3、用wise做安装程序,wise里面可以直接指定使用了DAO技术    
  4、installshale6.2做安装程序,里面可以直接指定使用了DAO技术    
   
  如果只是microsoft   jet   3.5   的问题,倒有一个比较简单的方法:  
  在App的InitInstance()里加入以几句话就行了。  
  #ifdef   _AFXDLL  
  Enable3dControls();   //   Call   this   when   using   MFC   in   a   shared   DLL  
  #else  
  Enable3dControlsStatic();   //   Call   this   when   linking   to   MFC   statically  
  #endif  
  #ifdef   _AFXDLL  
  AfxGetModuleState()->m_dwVersion   =   0x0601;  
  #else  
  #endif  
  .......  
   
   
  有几个东东你可以试试  
  http://download.microsoft.com/download/access2000/SP/4.0/NT5/EN-US/Jet40SP5_W2K.exe  
  http://download.microsoft.com/download/access2000/SP/4.0/W9XNT4/EN-US/Jet40SP5_9xNT.exe  
  http://download.microsoft.com/download/office97pro/SP/1/WIN98/EN-US/Jet35sp3.exe  
  http://download.microsoft.com/download/access2000/Utility/1.0/WIN98Me/EN-US/JetCU40.exe  
  http://download.microsoft.com/download/access20/whitepap/1/WIN98/EN-US/Jetwp.exe  
   
  其中第一个也许能解决你windows2000下的问题   Top

4 楼nicolas(nicolas)回复于 2001-10-15 11:09:31 得分 0

谢谢大家的帮助,我试试,我发现下面出错:  
  try   {  
  //   nonexclusive,   read-only  
  m_database.Open(m_strDatabase,   FALSE,   TRUE);  
          }  
  catch   (CDaoException*   e)   {  
  DaoErrorMsg(e);  
  e->Delete();  
  return   FALSE;  
          }  
   
  其中m_strDatabase为:f:\vod\program.mdb,是当前目前下的mdb(access2000)。  
   
  我按照你们说的试试,问题解决后立即给分,你们继续提建议呀。Top

5 楼nicolas(nicolas)回复于 2001-10-15 11:10:05 得分 0

谢谢大家的帮助,我试试,我发现下面出错:  
  try   {  
  //   nonexclusive,   read-only  
  m_database.Open(m_strDatabase,   FALSE,   TRUE);  
          }  
  catch   (CDaoException*   e)   {  
  DaoErrorMsg(e);  
  e->Delete();  
  return   FALSE;  
          }  
   
  其中m_strDatabase为:f:\vod\program.mdb,是当前目前下的mdb(access2000)。  
   
  我按照你们说的试试,问题解决后立即给分,你们继续提建议呀。Top

6 楼nicolas(nicolas)回复于 2001-10-15 11:11:37 得分 0

谢谢大家的帮助,我试试,我发现下面出错:  
  try   {  
  //   nonexclusive,   read-only  
  m_database.Open(m_strDatabase,   FALSE,   TRUE);  
          }  
  catch   (CDaoException*   e)   {  
  DaoErrorMsg(e);  
  e->Delete();  
  return   FALSE;  
          }  
   
  其中m_strDatabase为:f:\vod\program.mdb,是当前目前下的mdb(access2000)。  
   
  我按照你们说的试试,问题解决后立即给分,你们继续提建议呀。Top

7 楼jiangsheng(蒋晟.Net[MVP])回复于 2001-10-15 11:25:08 得分 0

什么错?(你不会只在目录字符串把目录分隔符写成一个"\"吧)Top

8 楼nicolas(nicolas)回复于 2001-10-15 14:07:46 得分 0

按照kane_yj的方法:  
  在App的InitInstance()里加入以几句话就行了。  
  #ifdef   _AFXDLL  
  Enable3dControls();   //   Call   this   when   using   MFC   in   a   shared   DLL  
  #else  
  Enable3dControlsStatic();   //   Call   this   when   linking   to   MFC   statically  
  #endif  
  #ifdef   _AFXDLL  
  AfxGetModuleState()->m_dwVersion   =   0x0601;  
  #else  
  #endif  
  就解决问题了,我将这个贴子再放一阵就就给分。Top

9 楼nicolas(nicolas)回复于 2001-10-15 14:08:18 得分 0

按照kane_yj的方法:  
  在App的InitInstance()里加入以几句话就行了。  
  #ifdef   _AFXDLL  
  Enable3dControls();   //   Call   this   when   using   MFC   in   a   shared   DLL  
  #else  
  Enable3dControlsStatic();   //   Call   this   when   linking   to   MFC   statically  
  #endif  
  #ifdef   _AFXDLL  
  AfxGetModuleState()->m_dwVersion   =   0x0601;  
  #else  
  #endif  
  就解决问题了,我将这个贴子再放一阵就就给分。Top

10 楼nicolas(nicolas)回复于 2001-10-15 14:09:47 得分 0

按照kane_yj的方法:  
  在App的InitInstance()里加入以几句话就行了。  
  #ifdef   _AFXDLL  
  Enable3dControls();   //   Call   this   when   using   MFC   in   a   shared   DLL  
  #else  
  Enable3dControlsStatic();   //   Call   this   when   linking   to   MFC   statically  
  #endif  
  #ifdef   _AFXDLL  
  AfxGetModuleState()->m_dwVersion   =   0x0601;  
  #else  
  #endif  
  就解决问题了,我将这个贴子再放一阵就就给分。Top

11 楼xtky_limi(窗外细雨)回复于 2001-12-25 17:10:22 得分 0

AfxGetModuleState()->m_dwVersion   =   0x0601;  
  其实最重要的就这一句话。Top

12 楼xtky_limi(窗外细雨)回复于 2001-12-25 17:13:58 得分 0

listenTop

相关问题

  • ADO连接访问数据库问题
  • 如何用DAO访问MDB数据库
  • 在DAO中访问ACCESS数据库
  • DAO通过ODBC连接数据库
  • 用DAO连接Access数据库问题
  • DAO连接数据库的小问题
  • 拨号远程访问数据库时,本地数据库和远程数据库不能同时连接?
  • 急!!!怎样连接访问有密码的Access 数据库?
  • ado访问oracle数据库,连接字符串怎么写?
  • VC远程连接、访问ORACLE数据库一问

关键词

  • win98
  • 安装
  • vod
  • 解决
  • access
  • x0601
  • strdatabase
  • afxdllenable
  • afxdllafxgetmodulestate
  • elseenable

得分解答快速导航

  • 帖主:nicolas
  • myb123
  • wmouse
  • kane_yj

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo