2014年10月04日

Delphi XE6 FireDAC Connection MySQL5.6.19 (32bit)

1. GroupBox1に
    LabeledEdit1.Caption  [Server]
    LabeledEdit2.Caption  [Database]
    LabeledEdit3.Caption  [user]
    LabeledEdit4.Caption  [Password]
    LabeledEdit5.Caption  [ServerCharSet]
    LabeledEdit6.Caption  [VendorLib]   

FireDACコンポーネント
  FDConnection1
  FDPhysMySQLDriverLink1
  FDGUIxWaitCursor1
  FDQuery1

SpeedButton1 →接続
SpeedButton2 →Create Table
SpeedButton3 →Drop Table

 FDConnection1→DriverName→MySQL
My001.png
2.  FDQuery1→Connection→FDConnection1
My002.png
3. 接続ボタンを押す。
My003.png
4. [FireDAC][Phys][MySQL]-314.ベンダライブラリ[libmysql.dll]を読み込めません。指定されたファイルが見つかりません。
ヒント:PATHまたはアプリケーションのEXEディレクトリら含まれているか、x86ビットであるかを確認してください。
My004_err.png
5. Debugフォルダに移動。
My005.png
6. dllを、配置
libmysql.dll
My006.png
7.
My007.png
8.
My008.png


//------------------------------------------------------------------------------
//Delphi XE6 FireDAC Connection
//MySQL5.6 Community Server
//------------------------------------------------------------------------------
unit FD_Con_MySQL56_Unit;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Buttons, Vcl.ExtCtrls,
  FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Error, FireDAC.UI.Intf,
  FireDAC.Phys.Intf, FireDAC.Stan.Def, FireDAC.Stan.Pool, FireDAC.Stan.Async,
  FireDAC.Phys, FireDAC.Phys.MySQL, FireDAC.VCLUI.Wait, FireDAC.Stan.Param,
  FireDAC.DatS, FireDAC.DApt.Intf, FireDAC.DApt, Data.DB, FireDAC.Comp.DataSet,
  FireDAC.Comp.Client, FireDAC.Comp.UI;

type
  TForm1 = class(TForm)
    GroupBox1: TGroupBox;
    LabeledEdit1: TLabeledEdit;
    LabeledEdit2: TLabeledEdit;
    LabeledEdit3: TLabeledEdit;
    LabeledEdit4: TLabeledEdit;
    LabeledEdit5: TLabeledEdit;
    LabeledEdit6: TLabeledEdit;
    Panel2: TPanel;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    Label1: TLabel;
    SpeedButton3: TSpeedButton;
    FDConnection1: TFDConnection;
    FDGUIxWaitCursor1: TFDGUIxWaitCursor;
    FDPhysMySQLDriverLink1: TFDPhysMySQLDriverLink;
    FDQuery1: TFDQuery;
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
  private
    { Private 宣言 }
  public
    { Public 宣言 }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
  FDConnection1.Params.Values['Server']     :=LabeledEdit1.Text;
  FDConnection1.Params.Values['Database']   :=LabeledEdit2.Text;
  FDConnection1.Params.Values['User_Name']  :=LabeledEdit3.Text;
  FDConnection1.Params.Values['Password']   :=LabeledEdit4.Text;
  FDConnection1.Params.Values['CharacterSet']:=LabeledEdit5.Text;
  FDPhysMySQLDriverLink1.VendorLib    :=LabeledEdit6.Text;

  FDConnection1.Connected:=True;
  if FDConnection1.Connected=True  then Label1.Caption:='Connection Successful '
  else                                  Label1.Caption:='Not connected';
end;

procedure TForm1.SpeedButton2Click(Sender: TObject);
var
  sqlstmt:string;
begin
  sqlstmt:='CREATE TABLE TEST_TBL '+
  '('+
  'TS_NO      INTEGER  not null,'+
  'TS_NAME    VARChar(30) ,'+
  'TS_QTY     DECIMAL(14,2) Default 0 ,'+
  'TS_BLOB    BLOB ,'+
  'primary key(TS_NO)'+
  ')';
  if FDConnection1.Connected=true then
  begin
    try
      FDQuery1.SQL.Clear;
      FDQuery1.SQL.Add(sqlstmt);
      FDQuery1.ExecSQL();
      ShowMessage('CREATE TABLE');
    except
      on E: EFDDBEngineException do
      ShowMessage(E.ClassName+' error raised, with message : '+E.Message);
    end;
  end
  else ShowMessage('Connected ERR');

end;

procedure TForm1.SpeedButton3Click(Sender: TObject);
var
  sqlstmt:string;
begin
  sqlstmt:='DROP TABLE TEST_TBL ';
  if FDConnection1.Connected=true then
  begin
    try
      FDQuery1.SQL.Clear;
      FDQuery1.SQL.Add(sqlstmt);
      FDQuery1.ExecSQL();
      ShowMessage('DROP TABLE');
    except
      on E: EFDDBEngineException do
      ShowMessage(E.ClassName+' error raised, with message : '+E.Message);
    end;
  end
  else ShowMessage('Connected ERR');
end;

end.



posted by a23 at 16:33| Comment(0) | 04. MySQL
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: