使用时注意将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: TObject; var 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: TObject; var Action: TCloseAction);
begin
SQLConnection.Close;
end;
end.
怀疑你没有启动Mysql的服务?或者服务没有安装上?
尝试 net start mysql,如果服务不存在,请检查Mysql是否正常安装了?
晕~~~
net start mysql就是打开3306端口
用ADO控件
用ADOconnection 直接就能连接到MYSQL
然后用 ADOQUERY ADOTABLE ADODATESET直接进行操作就行