天天看点

Delphi 中使用 ADO 方法打开 MySQL5.0 数据库并避免汉字乱码

    需要安装 MyODBC 数据库驱动,常见的版本是 3.51,比如 MyODBC-3.51.11-2-win.exe。

    代码示例:

    unit Unit1;

    interface

    uses

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

      Dialogs, DB, ADODB, Grids, DBGrids, StdCtrls;

    type

      TForm1 = class(TForm)

        ADOConnection1: TADOConnection;

        ADOQuery1: TADOQuery;

        DataSource1: TDataSource;

        DBGrid1: TDBGrid;

        Button1: TButton;

        procedure FormActivate(Sender: TObject);

        procedure Button1Click(Sender: TObject);

      private

        { Private declarations }

      public

        { Public declarations }

      end;

    var

      Form1: TForm1;

    implementation

    {$R *.dfm}

    procedure TForm1.FormActivate(Sender: TObject);

    begin

      try

        ADOConnection1.ConnectionString:=('DRIVER={MySQL ODBC 3.51 Driver};'+

                        'SERVER=localhost;'+

                        'DATABASE=17kf8;'+

                        'USER=root;'+

                        'PASSWORD=mbi1001;'+

                        'OPTION=3;');

        ADOConnection1.Close;

        ADOConnection1.Open;

      except

        application.MessageBox('无法连接到MySQL数据库', '提示', MB_ICONINFORMATION);

    end;

    procedure TForm1.Button1Click(Sender: TObject);

      ADOQuery1.close;

      ADOQuery1.SQL.Text := 'SET NAMES gbk;';

      ADOQuery1.ExecSQL();

      ADOQuery1.SQL.Clear;

      ADOQuery1.SQL.Add('SELECT * FROM open_news');

      ADOQuery1.Open;

    end.

    关键代码解释:

    1,DRIVER={MySQL ODBC 3.51 Driver}; 是连接 MySQL 数据库的关键;

    2,ADOQuery1.SQL.Text := 'SET NAMES gbk;' 语句避免了 MySQL 的汉字乱码。

    作者:张庆(网眼) 西安 PHP 教育培训中心 2010-10-3

本文转自网眼51CTO博客,原文链接:http://blog.51cto.com/itwatch/405218,如需转载请自行联系原作者