如何在DELPHI中访问远程的MYSQL数据库

如何在DELPHI中访问远程的MYSQL数据库,第1张

Delphi6新增的DBExpress专门用来对付Mysql,DB2,Interbase,Oracle等数据库,使用时注意将libmysql.dll

拷贝到当前目录或系统目录(98:system,NT:system32)下,并保证您的3306端口与远程服务器是相通的。

源程序:

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, DBXpress, DB, SqlExpr, StdCtrls, ComCtrls, FMTBcd, Grids,

DBGrids, Provider, DBClient, DBLocal, DBLocalS, DBTables

type

TForm1 = class(TForm)

SQLConnection: TSQLConnection

StatusBar1: TStatusBar

Label1: TLabel

DataSource1: TDataSource

DBGrid1: TDBGrid

GroupBox1: TGroupBox

Label2: TLabel

Password: TEdit

User_Name: TEdit

HostName: TEdit

Label3: TLabel

Label4: TLabel

Button1: TButton

GroupBox2: TGroupBox

Label5: TLabel

ESQL: TEdit

Label6: TLabel

Database: TEdit

ButtonGo: TButton

SQLClientDataSet: TSQLClientDataSet

procedure Button1Click(Sender: TObject)

procedure ButtonGoClick(Sender: TObject)

procedure FormClose(Sender: TObjectvar Action: TCloseAction)

private

{ Private declarations }

public

{ Public declarations }

end

var

Form1: TForm1

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject)

begin

with SQLConnection do

begin

Close

Params.Values['HostName']:=HostName.Text

Params.Values['UserName']:=User_Name.Text

Params.Values['Password']:=Password.Text

Params.Values['Database']:=Database.Text

try

Connected:=True

Statusbar1.Panels[0].Text:='Connect OK'

ButtonGo.Enabled:=True

except

MessageDlg('Connect Error',mtError,[mbyes],0)

end

end

end

procedure TForm1.ButtonGoClick(Sender: TObject)

begin

with SQLClientDataSet do

begin

Close

CommandText:=ESQL.Text

Open

end

end

procedure TForm1.FormClose(Sender: TObjectvar Action: TCloseAction)

begin

SQLConnection.Close

end

end.

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.22DATABASE=ruleUSER=WJHPASSWORD=123456OP

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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7439827.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存