小弟刚学delphi,今天搞了很久,终于用这个
'DRIVER={MySQL ODBC 5.1 Driver};' + 'SERVER=host;' + 'DATABASE=xxx;' + 'USER=xxx;' +
    'PASSWORD=xxx;' + 'OPTION=3;' + 'port=3307'把mysql给连上了。但是事先在mysql官网下载了一个驱动,ODBC 5.1的。
问题来了,
1、为什么连MYSQL要装驱动,连SQL SERVER或者ACCESS就不用?
2、我不知道大家是否知道易语言,易语言里有一个mysql支持库,直接就可以连mysql。什么都不用装?这是怎么实现的?
3、能不能不装ODBC这玩意,难道程序写好了给别人用还要别人装这个?有几个人会装啊?有什么好办法,不装任何东西就可以连MYSQL的?
另外:
DBEXPRESS用不了,老是提示
Borland.Data.TDBXError: DBX Error:  Driver could not be properly initialized.  Client library may be missing, not installed properly, of the wrong version, or the driver may be missing from the system path.

解决方案 »

  1.   

    delphi连MYSQL使用MYDAC进行连接很方便 
      

  2.   


    我知道unidac了,但是我想他是怎么实现不装任何东西就能连的?
      

  3.   

    delphi6-7的时候 还没有MYSQL吧  而且驱动也不想JAVA那么方便装了驱动也是要通过ODBC 
    最好的方法就是MYDAC 本身就是MYSQL提供的插件,安全可考
      

  4.   

    1、为什么连MYSQL要装驱动,连SQL SERVER或者ACCESS就不用?
      SQL Server和ACCESS需要的驱动叫MDAC,大多数版本的windows内置。
    2、我不知道大家是否知道易语言,易语言里有一个mysql支持库,直接就可以连mysql。什么都不用装?这是怎么实现的?
      内置在你所谓的“易语言mysql支持库”里了
    3、能不能不装ODBC这玩意,难道程序写好了给别人用还要别人装这个?有几个人会装啊?
      他们不会装,你发布程序时制作个安装包,捆绑进去呗。
      

  5.   

    不是连mysql要装驱动,是用odbc方式连mysql要装驱动。你也可以直接用odbc部分的api访问mysql
    sql server和access的odbc驱动系统自带了。
    易语言没用过,那个可能也就是封装了api而已。
    装个UniDAC,不用再装mysql的odbc驱动了
      

  6.   

    1、为什么连MYSQL要装驱动,连SQL SERVER或者ACCESS就不用?====================================================================
    因为SQL SERVER,ACCESS他爹叫微软!2、我不知道大家是否知道易语言,易语言里有一个mysql支持库,直接就可以连mysql。什么都不用装?这是怎么实现的?===================================================================
    连接MySQL只需要一个dll就够了,发布这个dll就好了,
    找下它安装路径看有没类似libmysql.dll的东东。

    3、能不能不装ODBC这玩意,难道程序写好了给别人用还要别人装这个?有几个人会装啊?===================================================================
    MySQL的ODBC驱动其实也只需要两个dll文件(例如5.0版本,就是myodbc5.dll和myodbc5S.dll)。
    不安装也是OK的,那你自己要稍微做点工作:在发布软件时,加上这两个dll文件,
    然后检查写入注册表项。
    具体的注册表项是:
    HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI
    (在里边新建一个 MySQL ODBC 5.1 Driver项,
    然后创建两个子项:
    Driver
    Setup。 
    值设为dll文件路径

      

  7.   

    建议使用zeoslib这个组件,这样发布时只需要附带一个libmysql.dll文件就好了,
    不需要其他安装,
    这个组件是开源的:
    http://sourceforge.net/projects/zeoslib/
      

  8.   


    MYSQL里的libmysql.dll和ODBC的myodbc5.dll、myodbc5S.dll这两个文件有什么区别,为什么不一样?UNIDAC是用什么实现技术不用装驱动的?
      

  9.   

    这个问题其实很好理解。不管驱动也好,A.dll,B.dll也好,它们的本质是没区别的。
    最终无非都是调用dll文件的api接口函数。libmysql.dll提供了访问mysql数据库所需要的基本接口,
    比如创建数据库连接,执行sql语法等等。
    连mysql只要这个dll文件也就够了。至于你问和ODBC的那两个dll有什么不一样,
    要知道ODBC是通用的,所以必然要重新进行一些封装。
    打个比方说,
    有头猪,名字叫猪,你帮它重新打扮了一下,
    并给它取了个新名字,叫pig,你说这pig和原来那头猪有什么不一样?不必太纠结这些边边角角的问题。
      

  10.   

    1、delphi 的 dbExpress  需要 LibMysql.dll
    2、libmysql.dll 的版本需要与 编译 dbexpress时的版本一致
    3、win7 64 位系统 windows目录下,system32 目录存放的是 64位的!!
    sysWoW64 存方的是 32位的!!
    SYSWOW64是SYStem32 of Window On Windows 64bit的意思
    4、未经验证:把以把些文件拷到 delphi 的 bin目录里,而不拷到系统目录里,就可以在IDE中用了
    再把 libmysql.dll 拷到程序目录里,程序单独运行时也可以用了。这样便于不同版本的libmysql.dll共存
    c:\Program Files (x86)\Embarcadero\RAD Studio\9.0\bin\
    c:\Program Files (x86)\Embarcadero\RAD Studio\9.0\bin64\