Delphi2006连接Mysql5.1(二)

原创 2007年01月15日 16:43:00
2.DBExpress+dbxopenmysql50.dll
可能很多人会奇怪,dbxopenmysql50.dll是什么东东?DBExpress不就是数据库连接组件了吗,为什么还要加上这个东西?这是由于Delphi2006中的DBExpress对Mysql高版本的支持很差,从国外论坛上看到的说法似乎是根本就没实现,所以说虽然TSQLConnection组件中提供了Mysql选项,但直接使用的话是不行的(低版本的mysql可能可以),我遇到的现象是提示“Unable to Load libmysql.dll”,但其实我已经在系统目录System32下、Delphi安装目录的bin中、开发工程项目文件夹中都安放了该文件,还是找不到该dll。
dbxopenmysql50.dll是由老外开发的,而且开源,还是老外好啊,可以到如下网址去下载:
http://www.justsoftwaresolutions.co.uk/delphi/dbexpress_and_mysql_5.html
使用时需要将dbxopenmysql50.dll和libmysql.dll都放到工程文件夹下。顺便提一下,libmysql.dll在mysql安装目录下的/lib/opt目录中。
使用方法有两种,一种是直接修改Borland/BDS/4.0/dbExpress下的dbxdrivers.ini,调整其中关于mysql的各参数。
另一种就是在程序中指定,现在我以这种方式为例说明这种连接方式的开发方法。
在Form上放上TSQLConnection、TSQLQuery、TStringGrid、3个TButton、TLable。界面显示如下图。

在FormCreate事件中:
SQLConnection1 := TSQLConnection.Create(nil);
SQLConnection1.DriverName := 'dbxmysql';
SQLConnection1.GetDriverFunc := 'getSQLDriverMYSQL50';
SQLConnection1.LibraryName := 'dbxopenmysql50.dll';
SQLConnection1.VendorLib := 'libmysql.dll';
SQLConnection1.LoginPrompt := false;
在此设置TSQLConnection的各个具体参数,当然也可以直接在组件属性面板中修改,或者修改dbxdrivers.ini中的对应参数,方法是多种的。
Connect按钮的事件:
SQLConnection1.Params.Append('Database=user');
SQLConnection1.Params.Append('User_Name=mysql');
SQLConnection1.Params.Append('Password=mysql');
SQLConnection1.Params.Append('HostName=localhost');
SQLConnection1.Open;
if SQLConnection1.Connected = true then
Label1.Caption := 'success'
else
Label1.Caption := 'fail';
设置数据库连接的各参数配置后,打开数据库连接,同时显示连接是否成功。
Query按钮的事件:
var
i,j: Integer;
begin
SQLQuery1.SQL.Clear;
SQLQuery1.SQL.Add('SELECT * FROM userinfo');
SQLQuery1.Active := true;
i := 0;
SQLQuery1.First;
while not SQLQuery1.eof do
begin
for j:=0 to SQLQuery1.FieldCount-1 do
StringGrid1.cells[j,i]:=SQLQuery1.Fields[j].AsString;
SQLQuery1.next;
inc(i);
end;
SQLQuery1.Active := false;
查询表数据并在StringGrid中输出。
Disconnect按钮的事件:
if SQLConnection1.Connected = true then
SQLConnection1.Close;
FormDestroy事件:
if SQLConnection1.Connected = true then
SQLConnection1.Close;
SQLConnection1.Free;
运行程序,点击connect按钮,如果数据库连接成功可以看到success提示,然后点击query按钮就能查询到表中的数据。 
 

Delphi2006连接Mysql5.1(一)

这两天抽空研究了下Delphi2006如何连接Mysql5.1,过于追求新版本有时就会遇到此类问题,厂商实现不完善,有地方没实现或没考虑到的,直接用它的产品就会出问题。baidu搜了搜国内网站,好像还...
  • freewind88
  • freewind88
  • 2007年01月15日 16:39
  • 3829

Delphi2006连接Mysql5.1(三)

3.TMySQLDatabase 这也是老外开发的pas文件,只有两个文件libmysql.pas、mysqldatabasev10.pas,其它似乎什么都不要了,相当简练。可以去如下网址下载: ht...
  • freewind88
  • freewind88
  • 2007年01月15日 16:46
  • 2586

Delphi2006连接Mysql5.1

本文转自 http://www.cnblogs.com/JackSun/archive/2010/12/16/1908145.html
  • hksoobe
  • hksoobe
  • 2014年06月16日 03:08
  • 349

delphi7/2006中导入ocx控件常常不能显示在组件栏中的解决办法

问题:如何在   Delphi   或   BCB   中使用   VB   做的   ActiveX   控件?         VB:         选择   "New   Project"  ...
  • niray
  • niray
  • 2007年03月31日 21:24
  • 2051

Delphi7到Delphi2006控件兼容性列表

每一代Delphi产品都有可能新增或者删除控件,下面是一个主要控件的对比列表摘自http://www.dragonsoftru.com/index.php?go=d7d2006 From Delphi...
  • melonliu
  • melonliu
  • 2005年12月13日 18:53
  • 2102

mysql5.1 中文 乱码 mysql 5.1 中文字符集问题终极解决方案

今天安装了一个mysql 5.1.40,刷刷刷几下安装完成后,建立一个数据库、一个表,然后,向表中插入数据,数据中包含中文,结果死活插入不了,总是报错: Incorrect string value:...
  • seng3018
  • seng3018
  • 2011年09月13日 11:25
  • 6025

今天开始学习DELPHI 2006 ECO

前几天在网上看到有关ECO的视频,发现ECO 还真是个好东西,开发.NET程序简单到只需要画几个图连几条线,设置几个控件就搞定了。刚好正打算用.NET做点东西。就拿ECO来做个入门吧。 ECO确实是...
  • dplayer
  • dplayer
  • 2007年07月20日 16:34
  • 423

mysql5.1 忘记root密码

看到篇文章: http://hi.baidu.com/rqkjwnkcxesvwxe/item/e75693bb0a68a743bb0e127c: 以下是mysql官网链接: h...
  • ning313180989
  • ning313180989
  • 2013年02月19日 10:57
  • 1222

linux下使用yum安装mysql5.1详解

linux下使用yum安装mysql5.1详解
  • lw305080
  • lw305080
  • 2016年02月17日 15:36
  • 1153

MySQL 5.1完全卸载

由于安装MySQL的时候,疏忽没有选择底层编码方式,采用默认的ASCII的编码格式,于是接二连三的中文转换问题随之而来,就想卸载了重新安装MYSQL,这一卸载倒是出了问题,导致安装的时候安装不上,在网...
  • xuaa
  • xuaa
  • 2009年09月12日 10:08
  • 3063
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Delphi2006连接Mysql5.1(二)
举报原因:
原因补充:

(最多只允许输入30个字)