CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Windows专区 >  Windows NT/2000/XP/2003

恼人的问题:数据源管理器里的驱动程序竟然全部人间蒸发?在线等!!!

楼主starxf(天尖)2004-12-04 20:07:23 在 Windows专区 / Windows NT/2000/XP/2003 提问

真恼人,我也不知道做了什么,竟然会出现这样的情况:  
  昨天用MSDE,MS   SQL   SERVER还好好的,今天却用不起来,报错:  
  ODBC:消息0,级别16,状态1  
  [Microsoft][ODBC驱动程序管理器]未发现数据源名称并且未指定默认驱动程序  
  我打开     \控制面板\管理工具\数据源\  
  选中   “   驱动程序”   选项卡  
  里面竟然什么也没有了,原来这里面可是有许多驱动程序的。也不知是怎么回事???  
  可能是我的某一个悟操作吧!  
  怎样解决这个问题?怎样把各个数据源的驱动程序加上去?  
  哪位高手有解决的方法?  
  问题点数:80、回复次数:7Top

1 楼kakalong(失忆的风)回复于 2004-12-04 20:18:22 得分 50

★★★★★几种注册ODBC数据源的方法★★★★★  
   
   
  一、手工配置    
  1.ODBC数据源管理器    
  在进行数据库开发时,为了达到配置ODBC,进行DSN定义注册的目的,微软给出了一个手工操作的解决方法。在Windows   9X操作系统的控制面板中,有一个名为“ODBC数据源(32位)”的图标,可以通过它激活专门为用户设置ODBC环境的程序(ODBC   Data   Source   Administrator,ODBC数据源管理器)。在Windows   2000操作系统中,上述图标被放置在控制面板的“管理工具”里面。    
  这个用于设置ODBC环境的程序叫做桌面驱动程序,它支持数种DBMS(Database   Management   System,数据库管理系统)。当用户想增加一个数据源和一个所需要的驱动程序时,可以通过ODBC数据源管理器的配置对话框配置特定类型的数据库。大多数情况下,在编写对数据库操作的程序时,我们至少需要知道诸如数据库文件名、系统(本地或远程)、文件夹等信息,同时要给数据源命名。    
  2.定义数据源的类型    
  用户可以定义以下三种类型的数据源:    
  ●用户数据源:作为位于计算机本地的用户数据源而创建的,并且只能被创建这个数据源的用户所使用;    
  ●系统数据源:作为属于计算机或系统而不是特定用户的系统数据源而创建的,用户必须有访问权才能使用;    
  ●文件数据源:指定到文件中作为文件数据源而定义的,任何已经正确地安装了驱动程序的用户皆可以使用这种数据源。    
  3.数据源注册的步骤    
  以Microsoft   Access为例,如果在C:\myfile\文件夹里创建了一个名为myexample.mdb的数据库文件,其注册步骤如下:    
  ●在控制面板里找到“ODBC数据源”图标,打开数据源管理器的交互界面;    
  ●笔者创建的数据库文件是供本机上的用户使用的,所以这里选择“用户   DSN”;    
  ●然后按下“添加”按钮,在弹出的数据源管理器对话框里,为自己所要创建的数据源选择一个驱动程序,本文的数据库文件是用Microsoft   Access创建的,所以要选择“Microsoft   Access   Driver   (*.mdb)”;      
  ●按“完成”按钮后,进入一个标题为“ODBC   Microsoft   Access   安装”的界面,在其中设置“数据源名”为“mydatasource”,选取数据库文件   “C:\myfile\myexample.mdb”,然后确定即可。    
  这样我们就完成了一个简单的ODBC数据源的注册。当然,在以上的步骤中,用户可以根据自己的不同需要,设置不同的选项。    
  注册结束后,我们便可以在对数据库的编程中,操作该数据库了。    
  二、在VB中注册数据源    
  在VB中对数据库进行编程时,可以利用RegisterDataSource方法为ODBC数据源输入连接信息到   Windows   注册表中。它的语法是:    
  RegisterDataSource   DSN,   driver,   silent,   attributes    
  其中参数代表的含义分别为:    
  ●DSN:字符串表达式,它是在引用数据源描述信息块时所使用的名字。例如,如果数据源是一个ODBC远程数据库,这就是服务器的名字;如果是用户DSN,则是注册的数据源的名字。    
  ●drive:字符串表达式,表示ODBC驱动程序的名称。它并不是   ODBC   驱动程序动态连接库   (DLL)   文件名。例如,SQL   Server   是驱动程序名,而   SQLSRVR.DLL   是   DLL   文件名。必须安装ODBC   及相应的驱动程序。    
  ●silent:布尔类型值,如果不想显示   ODBC   驱动程序对话框,用以提示指定驱动程序的信息,该值就为   True;如果希望显示   ODBC   驱动程序对话框,该值就为   False。如果   silent   为   True,那么attributes必须包含所有必需的指定驱动程序的信息。    
  ●attributes:字符串表达式,它是一个要添加到   ODBC.INI   文件中的关键字列表。编写程序时,可以根据需要选择若干attributes的参数进行设置。    
  例如:我们可以编写如下的VB程序,达到与上面手工注册一样的目的。程序清单如下:    
  Sub   RegisterDataSource()    
  Dim   strAttribs   As   String      
  ’建造关键字字符串。    
  ’C:\myfile\myexample.l.mdb数据库文件名(包含路径)    
  strAttribs   =“DBQ=”   _    
  &   “C:\myfile\myexample.mdb”   _      
  &   Chr$(13)   &   “OemToAnsi=No”   _    
  &   Chr$(13)   &   “SERVER=SEQUEL”   _    
  &   Chr$(13)   &   “Network=DBNMPNTW”   _    
  &   Chr$(13)   &   “Database=WorkDB”_    
  &   Chr$(13)   &“Address=\\SEQUEL\PIPE\SQL\QUERY”    
  ’建立新的注册的   DSN。    
  rdoEngine.rdoRegisterDataSource   “mydatasource”,      
  “Microsoft   Access   Driver   (*.mdb)”,   True,    
  strAttribs    
  End   Sub    
  Private   Sub   Form_Load()    
  Call   rdoRegisterDataSource      
  End   Sub    
  注意:为了在代码中使用rdoEngine和远程数据对象,必须先在“引用"对话框中设置一个到   Microsoft   Remote   Data   Object   2.0   对象库的引用,否则在第一次引用rdoEngine   对象时会导致编译错误。    
  三、利用注册表合并    
  1.解决思路    
  考查ODBC数据源注册后对Windows注册表的修改情况,我们可以发现所注册的数据源对Windows注册表的影响关键集中在[HKEY_CURRENT_USER\Software\ODBC\ODBC.INI]里。    
  这样,我们导出[HKEY_CURRENT_USER\Software\ODBC\ODBC.INI],每次以之为模板,把所要注册的数据源信息加入到注册表导出文件的对应位置,然后再将该文件与系统注册表合并即可。    
  2.具体操作    
  首先,我们要弄清楚Regedit   及其参数的含义。Regedit是打开系统注册表的命令。在“开始\运行\”中输入即可。它的三个参数含义如下:    
  ●Regedit   /e   myfile.reg   :表示把注册表文件导出到myfile.reg   文件中,相当于复制整个注册表文件到myfile.reg中;    
  ●Regedit   /c   myfile.reg:表示把myfile.reg导入注册表,相当于用该文件的内容覆盖了注册表的内容;    
  ●Regedit   /s   myfile.reg   :表示把myfile.reg文件的内容与注册表文件的内容进行合并。    
  我们只需在注册表中将有用的部分导出,而后将所要注册的数据源的信息加入,再与系统注册表合并就可以了。这个合并的过程,我们既可以手工输入来实现,也可以通过编程实现自动合并。    
  注意:为了防止误操作,一定要将系统注册表作一次备份。    
  小   结    
  从安全的角度考虑,笔者首推利用在Windows控制面板中的ODBC数据源管理工具来进行数据源注册,以免因对注册表的不熟或疏忽造成不必要的损失。当然,还有一些应用工具,可以实现对ODBC数据源的注册,用户可以根据不同的需求选择使用。Top

2 楼fengxue110(海)回复于 2004-12-04 20:32:41 得分 15

楼上说的很详细,建议你查查病毒.Top

3 楼starxf(天尖)回复于 2004-12-04 20:37:48 得分 0

为什么会出现这种问题?驱动程序里的驱动程序全部消失?Top

4 楼starxf(天尖)回复于 2004-12-04 21:40:09 得分 0

upTop

5 楼starxf(天尖)回复于 2004-12-04 22:54:36 得分 0

问题的关键是我的“数据源管理器里”的“驱动程序”选项卡里的驱动程序一个都没有了,  
  也就是说当单击“添加”按钮,在弹出的数据源管理器对话框里,没有一个可用的驱动程序,  
  所以就没法自己创建一个数据源。  
  不知何故,我想问题关键是要把各种数据的驱动程序安装上去,但不知怎样装?Top

6 楼jimmyge(Do Re Mi)回复于 2004-12-05 09:02:50 得分 15

修覆安裝系統Top

7 楼starxf(天尖)回复于 2004-12-11 10:46:17 得分 0

upTop

相关问题

  • [Microsoft][ODBC 驱动程序管理器] 数据源名称过长
  • [Microsoft][ODBC 驱动程序管理器] 未发现数据源
  • [Microsoft][ODBC 驱动程序管理器] 无效的游标状态???
  • odbc中驱动程序管理器和odbc驱动程序有何区别?
  • [Microsoft][ODBC 驱动程序管理器] 未发现数据源________怎么解决?
  • 急!!! 提示:java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 无效的游标状态
  • java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 无效的游标状态
  • [Microsoft] [ODBC 驱动程序 管理器] 未发现数据源名称并且未指定默认驱动程序
  • “[ODBC 驱动程序管理器] 驱动程序不支持此功能”?大虾进来看一下吧
  • 奇怪:在98中的控制版面中有ODBC驱动程序管理器,但在2000中却没有?

关键词

  • 数据
  • 驱动
  • 数据库
  • 文件
  • 注册
  • 用户
  • 文件名
  • 系统
  • vb
  • 数据源

得分解答快速导航

  • 帖主:starxf
  • kakalong
  • fengxue110
  • jimmyge

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

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