天天看點

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,如需轉載請自行聯系原作者