3个回答
展开全部
delphi 连接MySQL数据库
由于在Delphi 7中并没有提供对应MySQL4.0以上版本的dbexpress驱动(虽然在Borland的CodeCentral中有相关的驱动下载,但我却使用不了,不知道是否是我的方法不对),所以在使用前先下载MySQL 3.23.x的驱动libmysql.dll,下载后的
由于在Delphi 7中并没有提供对应MySQL4.0以上版本的dbexpress驱动(虽然在Borland的CodeCentral中有相关的驱动下载,但我却使用不了,不知道是否是我的方法不对),所以在使用前先下载MySQL 3.23.x的驱动libmysql.dll,下载后的libmysql.dll请放在Delphi安装目录的bin文件夹或者系统目录下或您的程序的目录中,否则dbexpress将无法找到它(出现错误提示:not load "libmysql.dll")。另外,如果libmysql.dll的版本不对会出现"invalid username/password"的错误提示。
TSQLConnection连接参数设置:
DriverName: MySQL
Host:本地:localhost;安装MySQL的计算机名/IP地地址
远程:安装MySQL的计算机名/IP地地址
Database:数据库名
UserName:MySQL用户名
Password:MySQL用户密码
LoginPrompt:false //不出现登录对话框
在使用前需要确定用户名和用户密码在MySQL中对于对应的数据库是否合法、有效。
数据组件:
推荐使用TSQLDataSet+TDataSetProvider+TclientDataSet+TdataSource+Data Control;或TSimpleDataSet+TdataSource+Data Control。
注意:不能使用TSQLDataSet+TdataSource+Data Control,否则在使用某些数据感知组件时会出现“operation not allowed on a unidirectional dataset”的错误提示,因为TSQLDataSet是单向的。
如果使用TSQLTable来使用数据有可能无法在TableName中列出所有的表名来。TSQLQuery和TSQLTable还是少用为妙。
如果那个DLL文件版本不对,可以考虑用ADO
TADOConnection的ConnectionString = 'DRIVER={MySQL ODBC 3.51
Driver};SERVER=MySQL数据库服务器;DATABASE=数据库名字;USER=用户
名;PASSWORD=密码;OPTION=3;'
DRIVER={MySQL ODBC 3.51
Driver};SERVER=192.168.1.22;DATABASE=rule;USER=WJH;PASSWORD=123456;OP
TION=3;
如果连接数据库后,dbgrid中会显示乱码,则在TADOConnection的
AfterConnect事件中增加代码:
ADOConnection1.Execute('set character_set_connection=gbk',cmdText);
ADOConnection1.Execute('set character_set_results=gbk',cmdText);
ADOConnection1.Execute('set character_set_client=gbk',cmdText);
本篇文章来源于:开发学院 http://edu.codepub.com 原文链接:http://edu.codepub.com/2010/0319/21181.php
由于在Delphi 7中并没有提供对应MySQL4.0以上版本的dbexpress驱动(虽然在Borland的CodeCentral中有相关的驱动下载,但我却使用不了,不知道是否是我的方法不对),所以在使用前先下载MySQL 3.23.x的驱动libmysql.dll,下载后的
由于在Delphi 7中并没有提供对应MySQL4.0以上版本的dbexpress驱动(虽然在Borland的CodeCentral中有相关的驱动下载,但我却使用不了,不知道是否是我的方法不对),所以在使用前先下载MySQL 3.23.x的驱动libmysql.dll,下载后的libmysql.dll请放在Delphi安装目录的bin文件夹或者系统目录下或您的程序的目录中,否则dbexpress将无法找到它(出现错误提示:not load "libmysql.dll")。另外,如果libmysql.dll的版本不对会出现"invalid username/password"的错误提示。
TSQLConnection连接参数设置:
DriverName: MySQL
Host:本地:localhost;安装MySQL的计算机名/IP地地址
远程:安装MySQL的计算机名/IP地地址
Database:数据库名
UserName:MySQL用户名
Password:MySQL用户密码
LoginPrompt:false //不出现登录对话框
在使用前需要确定用户名和用户密码在MySQL中对于对应的数据库是否合法、有效。
数据组件:
推荐使用TSQLDataSet+TDataSetProvider+TclientDataSet+TdataSource+Data Control;或TSimpleDataSet+TdataSource+Data Control。
注意:不能使用TSQLDataSet+TdataSource+Data Control,否则在使用某些数据感知组件时会出现“operation not allowed on a unidirectional dataset”的错误提示,因为TSQLDataSet是单向的。
如果使用TSQLTable来使用数据有可能无法在TableName中列出所有的表名来。TSQLQuery和TSQLTable还是少用为妙。
如果那个DLL文件版本不对,可以考虑用ADO
TADOConnection的ConnectionString = 'DRIVER={MySQL ODBC 3.51
Driver};SERVER=MySQL数据库服务器;DATABASE=数据库名字;USER=用户
名;PASSWORD=密码;OPTION=3;'
DRIVER={MySQL ODBC 3.51
Driver};SERVER=192.168.1.22;DATABASE=rule;USER=WJH;PASSWORD=123456;OP
TION=3;
如果连接数据库后,dbgrid中会显示乱码,则在TADOConnection的
AfterConnect事件中增加代码:
ADOConnection1.Execute('set character_set_connection=gbk',cmdText);
ADOConnection1.Execute('set character_set_results=gbk',cmdText);
ADOConnection1.Execute('set character_set_client=gbk',cmdText);
本篇文章来源于:开发学院 http://edu.codepub.com 原文链接:http://edu.codepub.com/2010/0319/21181.php
展开全部
其实mysql连接没你想的那么复杂,如果用,我建议你用 RemObjects 的三层连接模式,支持几乎所有的数据库连接。
研究一下,对开发程序和移植都有利。
研究一下,对开发程序和移植都有利。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
建个ADO数据源,用它连好MYSQL建立的系统数据源后把连接字符抄来用即可
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询