1、如何在 delphi中设计 mysql的数据连接如何在 delphi中设计 mysql的数据连接2008-07-21 10:49使用 delphi连接 mysql做成一个二级服务管理系统应该是中小数据管理模式的一种比较理想的应用,1.使用 delphi的客户端用户界面比采用浏览器方式的界面更可以增强客户端的易用性,功能更全面,2.使用 mysql的服务器端软件可以节约开支(对不能使用盗版软件而言) ,功能也较强大,是现在流行的数据库管理软件,会使用的人很多。由于 delphi本身提供的 mysql连接方式只能支持 mysql3.23以下版本的 mysql,故对于现在普遍使用的 5.0以上的版本
2、无法提供支持,在使用进将会得到“unable to load libmysql”的错误提示。对于该问题的解决有几种方式,目前我使用的是一种用dbxopenmysql50.dll替换掉 delphi本身自带的dbexpmysql.dll。进行替换的两种方式。直接将下载的 dbxopenmysql50.dll改名为 dbexpmysql.dll存到 C:Program FilesBorlandDelphi7Bin,对原文件进行替换,然后在程序设计中还要修改 connction下的的 GetDriverFunc改为getSQLDriverMYSQL50。2.将 dbxopenmysql50.dll拷
3、贝到用户设计目录,然后在程序设计中将 connection下的 libraryname改为dbxopenmysql50.dll,GetDriverFunc 改为 getSQLDriverMYSQL50。示例程序及源代码:先在程序中添加控件 simpledataset1、datasource1、dbgrid1edit1 输入入主机名edit2 输入端口(此外此功能无效,因为无法对端口进行更改)edit3 数据库名edit4 连接 mysql数据库的用户名edit5 连接 mysql数据库的密码edit6 表名设置 button1 的 caption为退出设置 button2 的 caption为
4、连接设置 datasource1的 dataset为 simpledataset1设置 dbgrid1的 datasource为 datasource1双击连接 button2输入以下代码with simpledataset1.Connection dobeginDriverName := dbxmysql;GetDriverFunc := getSQLDriverMYSQL50;LibraryName := dbxopenmysql50.dll;VendorLib := libmysql.dll;Params.Append(HostName=localhost);/ Params.Appen
5、d(HostName=+edit1.Text+:+edit2.Text);/ Params.Append(port=+edit2.Text );Params.Append(Database=+edit3.Text );Params.Append(User_Name=+edit4.Text );Params.Append(Password=+edit5.Text );end;simpledataset1.DataSet.CommandText :=select * from +edit6.Text ;simpledataset1.Open;双击退出 button1输入以下代码simpledata
6、set1.close;close;完成后的程序代码总清单为:unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, DBXpress, FMTBcd, DB, Grids, DBGrids, SqlExpr, DBClient,SimpleDS, StdCtrls;typeTForm1 = class(TForm)DBGrid1: TDBGrid;SimpleDataSet1: TSimpleDataSet;DataSource1: TD
7、ataSource;Button1: TButton;Label1: TLabel;Label2: TLabel;Label3: TLabel;Label4: TLabel;Edit1: TEdit;Edit2: TEdit;Edit3: TEdit;Edit4: TEdit;Button2: TButton;Label5: TLabel;Edit5: TEdit;Edit6: TEdit;Label6: TLabel;procedure Button1Click(Sender: TObject);procedure Button2Click(Sender: TObject);procedur
8、e FormCreate(Sender: TObject);private Private declarations public Public declarations end;varForm1: TForm1;Connection: TSQLConnection;implementation$R *.dfmprocedure TForm1.Button2Click(Sender: TObject);beginwith simpledataset1.Connection dobeginDriverName := dbxmysql;GetDriverFunc := getSQLDriverMY
9、SQL50;LibraryName := dbxopenmysql50.dll;VendorLib := libmysql.dll;Params.Append(HostName=localhost);/ Params.Append(HostName=+edit1.Text+:+edit2.Text);/ Params.Append(port=+edit2.Text );Params.Append(Database=+edit3.Text );Params.Append(User_Name=+edit4.Text );Params.Append(Password=+edit5.Text );end;simpledataset1.DataSet.CommandText :=select * from +edit6.Text ;simpledataset1.Open;end;procedure TForm1.Button1Click(Sender: TObject);beginsimpledataset1.close;close;end;procedure TForm1.FormCreate(Sender: TObject);beginend;end.转载请注作者:nathen.zhang Email: