网上有很多关于Delphi连接MySql数据库的文章,在这里,我只记录下自己测试过的方法,以备所需。

系统环境:Windows XP SP3

软件环境:Delphi 7 、mysql-installer-5.5.15.0

1.ODBC方式

必须要先有MySql的ODBC驱动,我下载的是全安装版,包括MySql服务器、各种所支持的连接、工作台、示例数据库、文档,若是无ODBC驱动,可以到官网 http://dev.mysql.com/downloads/connector/odbc/

下载。

①数据源方式

首先,确认安装了MySql的ODBC驱动,打开“控制面板”→“管理工具”→“数据源”,切换到“驱动程序”页,查看“ MySql ODBC 5.1 Driver

",如下图所示:

切换到"系统DSN"→"添加"→"MySql ODBC 5.1 Driver",如下图所示:

弹出MySql数据源配置,数据源名称随意,TCP/IP Server为数据库地址,User用户名,Password密码,Database连接的数据库,点"Test"进行测试连接,如下图所示:

点击"OK"后,即可看到新增加了一个数据源。打开Delphi 7,在窗体上放置TADOConnection、TADOQuery、TDataSource和TDBGrid,相互之间关联,配置TADOConnection的连接字符串,"提供程序"选择" Microsoft OLE DB Provider for ODBC Drivers

",下一步,选择"使用数据源名称",下拉选择刚才配置的数据源,其他的不用再填写,测试连接,如下图所示:

在TADOQuery写查询语句,设置Active为True,数据都显示在表格上,如下图所示:

②驱动方式

跟上面一样,先确认安装MySql的ODBC驱动。打开Delphi 7,在窗体上放置TADOConnection、TADOQuery、TDataSource和TDBGrid,相互之间关联,配置TADOConnection的连接字符串,为以下内容:

1

Driver={MySQL ODBC 5.1 Driver}; Server=127.0.0.1; Database=world; User=root; Password=a123; Option=3;

在TADOQuery写查询语句,设置Active为True,数据都显示在表格上,如下图所示:

2.ZeosLib方式

ZeosLib是一个用于Borland开发工具的数据库中间件,包括Delphi、C++ Builder和Kylix。从 http://sourceforge.net/projects/zeoslib/files/

下载"ZEOSDBO-6.6.6-stable"版本,解压到文件夹。打开Delphi 7,加载工程项目包"...\ZEOSDBO\packages\delphi7\ZeosDbo.bpg",按顺序编译,或者右键选择"Compile All From Here",如下图所示:

编译完成后,再选择" ZComponentDesign.bpl

",右键选择"Install",安装组件成功,弹出如下对话框:

再添加所编译完成的目录,即"...\ZEOSDBO\packages\delphi7\build",菜单"Tools"→"Environment Options"→"Library"→"Library path",添加此目录。另外,若需要在编写代码时,能进入ZeosLib源代码的话,需要添加源代码文件夹目录,包括:"...\ZEOSDBO\src\core"、"...\ZEOSDBO\src\parsesql"、"...\ZEOSDBO\src\plain"、"...\ZEOSDBO\src\dbc"和"...\ZEOSDBO\src\component"(注意:会在这些目录下再次编译单元文件)。

新建一个应用程序,在窗体上放置TZConnection、TZQuery、TDataSource和TDBGrid,在窗体创建函数里,写入以下代码:

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

procedure

TForm1.FormCreate(Sender: TObject);

begin

//---------------互相关联------------------------

zqry1.Connection := zcon1;

ds1.DataSet := zqry1;

dbgrd1.DataSource := ds1;

//---------------设置参数------------------------

zcon1.Protocol :=  'mysql'

;

zcon1.Port :=  3306

;

zcon1.HostName :=  '127.0.0.1'

;

zcon1.User :=  'root'

;

zcon1.Password :=  'a123'

;

zcon1.Database :=  'world'

;

zcon1.Connected := True;

//---------------查询显示------------------------

zqry1.Close;

zqry1.SQL.Text :=  'SELECT * FROM City'

;

zqry1.Active := True;

end

;

当然手动在设计器上进行设置也可以。因为这里连接的是MySql数据库,需要拷贝MySql数据库客户端所需的DLL(即: libmysql.dll

,这里我安装的是在"...\MySQL\MySQL Server 5.5\lib"里面)复制到Windows系统目录(通常是"C:\WINDOWS\system32")或者工程目录下。程序如下图所示:

当程序发给别人使用时,需要连同" libmysql.dll

"一起发送。若是显示的数据有乱码,这是因为MySQl数据库默认使用UTF-8字符集,则先在查询之前,设置字符集,如下代码所示:

1

2

3

4

5

6

7

begin

zqry1.Close;

zqry1.SQL.Text :=  'set names gbk'

;

zqry1.ExecSQL;

zqry1.SQL.Text :=  'select * from city'

;

zqry1.Active := True;

end

;

或者在TZConnection的Properties属性添加" codepage=gbk

"。

3.其他方式

另外,还有其他的第三方控件可以连接MySql等其他数据库,如:AnyDAC、MyDAC 、DAC for MySQL等等。

delphi7 utf8 mysql_delphi 7 连接 MySql相关推荐

  1. python连接mysql数据库数据库_python如何连接mysql数据库

    先花点时间来说说一个程序怎么和数据库进行交互 1.和数据库建立连接 2.执行sql语句,接收返回值 3.关闭数据库连接 使用MySQLdb也要遵循上面的几步.让我们一步步的进行. 1.MySQL数据库 ...

  2. thinkphp mysql 中文_耗时5天解决thinkphp连接mysql中文乱码的问题

    坑大,或者不大,它就在那里,等着你进. 先前修改成熟的一个基于thinkphp3.1.2的后台框架,里面有我的autoCode,本来在新项目上不想再用这么落后的版本,但考虑到后台项目不对外使用,重点是 ...

  3. python如何连接mysql数据库

    先花点时间来说说一个程序怎么和数据库进行交互 1.和数据库建立连接 2.执行sql语句,接收返回值 3.关闭数据库连接 使用MySQLdb也要遵循上面的几步.让我们一步步的进行. 1.MySQL数据库 ...

  4. JDBC SSL连接MySQL

    最近碰到个JDBC连接MySQL出现SSL错误的问题. SSL(Secure Socket Layer:安全套接字层),利用数据加密.身份验证和消息完整性验证机制,为基于TCP等可靠连接的应用层协议提 ...

  5. Python3 使用 pymysql 连接 MySQL 建表时出现 Warning3719 UTF8 警告

    在学习 Python3 爬虫关系型数据库储存时,利用 pymysql 连接 MySQL 建表,测试用的代码如下,第一句 SQL 用于获取当前 MySQL 的版本信息,第二句 SQL 执行创建 spid ...

  6. delphi7 mysql控件_Delphi7连接MySql数据库-DBGrid控件显示数据

    一个简单的Delphi7小程序,使用MySql数据库做简单查询,用DBGrid控件显示结果,实现过程如下: (1)在MySql中新建demouser表,插入记录用于测试. (2)在Delphi7中新建 ...

  7. delphi xe mysql_Delphi XE中使用dbExpress连接MySQL数据库疑难问题解决(对三层的例子配置有帮助)...

    标签: Delphi IDE中包含一个Data Explorer的组件,如下图所示: 该组件基于dbExpress(包含TSQLConnection.TSQLDataSet.TSQLQuery.TSQ ...

  8. delphi xe mysql_Delphi XE中使用dbExpress连接MySQL数据库疑难问题解决

    [用户在使用FineReport报表时,客户端连接SQLSever.Oracle.Informix时常常会出现一些错误,笔者整理了一些疑难问题的解决方案.1. SQLServer数据库连接失败常见解决 ...

  9. Delphi 7连接MySql 5 5 15

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 网上有很 ...

最新文章

  1. sql语句性能优化【转载】
  2. blkdiag--生成以输入元素为对角线元素的矩阵
  3. 24. Swap Nodes in Pairs 链表每2个点翻转一次
  4. SQLErrorCodeSQLExceptionTranslator
  5. 中石油训练赛 - 01 Matrix(构造)
  6. maven打包pom.xml备忘
  7. 矩阵键盘程序_独立按键与矩阵按键
  8. EIGRP的基本配置
  9. overflow encountered in ubyte_scalars像素加减运算溢出异常
  10. library的英语怎么读音_如何提高英语听力
  11. 瑞星网络版防病毒软件For Linux通过银河麒麟产品兼容性测试
  12. 新国标电动车怎么选?绿源INNO7了解一下吧
  13. java8 treemap 排序_java中TreeMap排序的示例代码
  14. 文档服务器 件排名,十大服务器排名
  15. JZOJ 3337. 【NOI2013模拟】wyl8899的TLE【暴力】
  16. IDEA中好用的功能(不断更新中)
  17. 《大型网站技术架构》《K8S进阶实战》等书籍!送45本!
  18. VMware vCenter Converter 物理机迁移
  19. 开源 | Objective-C Swift 最轻量级 Hook 方案
  20. 狂神Elasticsearch笔记

热门文章

  1. Itext图层合并/分离
  2. Struts 2再爆高危漏洞CVE-2017-5638 绿盟科技发布免费扫描工具及产品升级包
  3. python(4月3日)
  4. java 删除目录_java删除文件夹及子目录
  5. rk3399 Linux ov2710调试
  6. 用Canvas在SurfaceView上绘制一个雷达扫描动画
  7. PHP自动批量生成发卡平台卡密信息并导入数据库
  8. 关于无感刷新Token,我是这样子做的
  9. 功能测试需要注意的地方
  10. unity加载AB包报错:Unable to read header from archive file