小弟刚学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.
'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.
我知道unidac了,但是我想他是怎么实现不装任何东西就能连的?
最好的方法就是MYDAC 本身就是MYSQL提供的插件,安全可考
SQL Server和ACCESS需要的驱动叫MDAC,大多数版本的windows内置。
2、我不知道大家是否知道易语言,易语言里有一个mysql支持库,直接就可以连mysql。什么都不用装?这是怎么实现的?
内置在你所谓的“易语言mysql支持库”里了
3、能不能不装ODBC这玩意,难道程序写好了给别人用还要别人装这个?有几个人会装啊?
他们不会装,你发布程序时制作个安装包,捆绑进去呗。
sql server和access的odbc驱动系统自带了。
易语言没用过,那个可能也就是封装了api而已。
装个UniDAC,不用再装mysql的odbc驱动了
因为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文件路径
)
不需要其他安装,
这个组件是开源的:
http://sourceforge.net/projects/zeoslib/
MYSQL里的libmysql.dll和ODBC的myodbc5.dll、myodbc5S.dll这两个文件有什么区别,为什么不一样?UNIDAC是用什么实现技术不用装驱动的?
最终无非都是调用dll文件的api接口函数。libmysql.dll提供了访问mysql数据库所需要的基本接口,
比如创建数据库连接,执行sql语法等等。
连mysql只要这个dll文件也就够了。至于你问和ODBC的那两个dll有什么不一样,
要知道ODBC是通用的,所以必然要重新进行一些封装。
打个比方说,
有头猪,名字叫猪,你帮它重新打扮了一下,
并给它取了个新名字,叫pig,你说这pig和原来那头猪有什么不一样?不必太纠结这些边边角角的问题。
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\