我是想在delphi中直接把系统中的创建数据源对话框调出来!

解决方案 »

  1.   

    ODBC管理程序设置DSN的秘密在注册表中,不信可以到HKEY_LOCAL_MACHINE\Software\ODBC去看看,肯定让你感觉已经成功了一半. 首先来看看系统中已安装的ODBC数据库驱动程序.在HKEY_LOCAL_MACHINE\Software\ODBC\ ODBCInst.INI中,存放着已经安装了的ODBC数据库驱动程序的信息,从这里可以查到已安装的ODBC数据库驱动程序对应的DLL文件等信息.在ODBCInst.INI\ODBC Drivers的各个键值中,键名是驱动程序名称(如Microsoft Access Driver(*.mdb)),键值为“Installed”,表示驱动程序已安装.在 ODBCInst.INI\DriverName(DriverName为一个驱动程序名称,如Microsoft Access Driver(*.mdb)) 中,有驱动程序的详细信息,我们主要从这里获得ODBC驱动程序对应的DLL文件的路径和文件名,即键名Driver的键值,一般为"C:\WINDOWS\SYSTEM\FileName.DLL".自己设计一个对话框吧,很简单。先读出上面注册表中的项目(还可以加上你自己的项目),让用户选择操作(可以设计得和系统的一样),然后再将操作结果写注册表。不就搞定了吗。
      

  2.   

    谢谢oracle_lover(数据库情人)和shao528(红雪) 我找到解决问题的思路,
      

  3.   

    各位讨论的方法未免太复杂了,居然还去修改注册表。
    用TADOConnection,然后点选对象属性浏览器中的ConnectionString,
    在弹出的对话框中选上一项(来自字符串),建好了与一个*.mdb的连接后,
    从对象属性浏览器中将ConnectionString的内容拷贝出来,会发现它是这样的
    Provider=xxxx;DataSource=c:\数据文件.mdb;User Name=xxx;Password=xxx
    ....
    每个参数以;结尾;
    在FormCreate事件中这样写:
    UserName:='sa';
    Password:='888';
    DataSourceFile:='d:\数据文件.mdb'
    ADOConnetion.connected:=false;
    ADOConnetion.connectionstring:='Provide=xxx;....'+//这个可从上面去考
    ';UserName='+UserName+';Password='+Password+
    ';DataSource='+DataSourceFile+
    ';........';
    ADOconnection.conected:=true;我一直这么干的,在干净的Win98上也运行的很好,可动态配置参数。