[Firebird Wiki]

Edit of DelphiからFirebirdにアクセスする方法まとめ

  • ホーム
  • 差分
  • バックアップ
  • リロード
  • 一覧
  • 検索
  • 最終更新
  • ヘルプ
  • ログイン

  1. DelphiからFirebirdにアクセスする方法まとめ
  2. Edit of DelphiからFirebirdにアクセスする方法まとめ
  • テキスト整形のルールを表示する

    • 新規
    • ソース
    • 名前変更
    • ホーム
    • 一覧
    • 検索
    • 最終更新
    • バックアップ
    • リンク元
    • ログ
    • ヘルプ
    • 最終更新のRSS
    Founded by anonymous
    Powered by PukiWiki Advance v 2.0.2. Processing time: 1.429 sec.
    Original Theme Design by PukiWiki Plus! Team.
    PukiWiki Advance HTML 5

    Edit of DelphiからFirebirdにアクセスする方法まとめ[TOC]

    undefined
    差分
    -(ここの記述は不完全です。詳しい方がいらっしゃいましたら補完お願いします)
    *基本事項 [#w6ea079a]
    -Firebird1.5まではInterbase6.0と互換性があるため、Interbaseのコンポーネントを使用可能。Firebird2.0以降はFirebirdに対応したコンポーネントを使う必要がある。
    -UTF8のSQLSubtype値がInterBaseと異なる。(Firebird=4、InterBase=59)
    *FireDAC [#o7917f4f]
    -XE3で追加。Enterprise版には標準添付。Professtional版には別途FireDAC Client/Server Add-On Packを購入することで追加可能。Firebird1.5以降をサポート。
    -XE4版(8.0.5)までは、過去バージョンのdelphiをサポートしていた為、インストーラを「/SHOWIDE」オプション付きで起動するとインストールするIDEを選択する事が出来たがXE5移行はインストーラが統合され指定バージョン専用となっている。
    -2018年4月よりFireDAC Client/Server Add-On Packは購入不可となっている為、C/S環境で使用したい場合はEnterprise版を購入する必要がある。。
    -(詳細記述募集)
    *BDE [#f92b74e2]
    -Enterprise(C/S)版以上が必要。SQL-LINKでINTERBASEを指定することでFirebird1.5まで接続可能。(ベンダー非推奨)
    -Dialect 3に未対応。
    -BDEは廃止予定
    *dbExpress [#rf4ceb9f]
    -Delphi2010以降のEnterprise以上でFirebirdを正式サポート。それ以前のバージョンではInterbaseドライバを使用することで1.5までは接続可能(ベンダー非推奨)
    -(詳細記述募集)
    *IBObjects [#zf6d5d3e]
    -Delphi5以降のProfessional以上(Enterprise不要)ですべてのFirebirdのバージョンに対応。
    -データアクセス用のコンポーネントだけでなく、独自のDBコントロールもある。
    -データアクセス用コンポには、Delphi付属のDBコントロール(TDBGridなど)と接続できるTIBO系と、独自コントロール(TIB_DBGridなど)接続用のTIB_系がある。同一プロジェクト内での混在は可能だが相互接続はできない。
    *ZeosLib [#QAbZzXJ]
    -OSSのデータアクセスコンポーネント集。Firebird以外にも様々なDBに接続可能。
    -TDataSet互換で、TDataSourceを通して様々なヴィジュアルコンポーネントで利用可能。
    -https://sourceforge.net/projects/zeoslib/
    *FIBPlus [#k4eb9e8d]
    -(詳細記述募集)
    *ODBC [#b745c1a0]
    -(詳細記述募集)
    *IBX [#icad1f5e]
    -(詳細記述募集)
    *Universal Data Access Components (UniDAC) [#e7ae7b85]
    -Firebird 1.x/2.x/3.xを含む、多くのデータベースに対応したDevart社のコンポーネント(有料)。
    -Delphi6/C++Builder6以降(Delphi8を除く)、Lazarus(Free Pascal 3.0)に対応。
    -Firebird 2のRETURNING節、EXECUTE BLOCK構文、Advanced Lockingに対応。
    -Firebird 3のBOOLEAN datatypeに対応。
    -Professional EditionはLinux, iOS, Androidアプリにも対応。
    -https://www.devart.com/unidac/
    
    **使用例 [#te6b0101]
    ※注 以下のソースコードはUniDAC Professional Edition用であり、コンパイルおよび動作の確認はしていません。
     type
       TForm1 = class(TForm)
         InterBaseUniProvider1: TInterBaseUniProvider;
         UniConnection1: TUniConnection;
         UniScript1: TUniScript;
         UniSQL1: TUniSQL;
       private
         function SampleData: Boolean;
       end;
     
     function TForm1.SampleData: Boolean;
     var
       SampleDbFile: string;
     begin
       Result := False;
     
       SampleDbFile := 'C:\data\sample.fdb';
     
       UniConnection1.ProviderName := 'InterBase';
       UniConnection1.Server       := '127.0.0.1';  // fbembed.dll/fbclient.dll使用時は''(空)にすること
       UniConnection1.Username     := 'SYSDBA';
       UniConnection1.Password     := 'masterkey';
       UniConnection1.Database     := SampleDbFile;
     
       with UniConnection1.SpecificOptions do begin
         Clear;
         Add('CharLength=4'   ); // UTF8は4, UNICODE_FSSは3, CP943Cは2を指定
         Add('Charset=UTF8'   ); // UNICODE_FSS, CP943C
         Add('ClientLibrary=' ); // fbembed.dll, fbclient.dll
         Add('SQLDialect=3'   );
         Add('UseUnicode=True'); // True:フィールド長=文字数×CharLength(dtWideString/dtWideMemo)
       end;
     
       try
         // データベースファイル生成とテーブル生成
         UniScript1.Connection := UniConnection1;
         UniScript1.SQL.Clear;
         UniScript1.SQL.Add('CREATE DATABASE "' + SampleDbFile + '"');
       //UniScript1.SQL.Add('  DEFAULT CHARACTER SET UTF8');
       //UniScript1.SQL.Add('  PAGE_SIZE 8192');
         UniScript1.SQL.Add(';');
         UniScript1.SQL.Add('CREATE TABLE MYTABLE (');
         UniScript1.SQL.Add('  USER_CODE CHAR(3),');
         UniScript1.SQL.Add('  USER_NAME VARCHAR(50) CHARACTER SET UTF8');
         UniScript1.SQL.Add(');');
         UniScript1.NoPreconnect := True; // SQL実行前にデータベース接続をしない
         UniScript1.Execute;
     
         // データベースに接続
         UniConnection1.Connected := True;
     
         // データ追加
         UniSQL1.SQL.Clear;
         UniSQL1.SQL.Add('INSERT INTO MYTABLE');
         UniSQL1.SQL.Add('  (USER_CODE, USER_NAME)');
         UniSQL1.SQL.Add('VALUES');
         UniSQL1.SQL.Add('  (:P1, :P2)');
         UniSQL1.Params.ParamByName('P1').AsString := '001';
         UniSQL1.Params.ParamByName('P2').AsWideString := '鈴木花子';
         UniSQL1.Execute;
     
       except
         on E: Exception do begin
           UniConnection1.Connected := False;
           ShowMessage(E.Message);
           Exit;
         end;
       end;
     
       Result := True;
     end;
    絵文字
    文字色
    ヒント
    色指定は、最初に選択した色が文字色、次に選択した色が背景色になります。

    選択範囲を処理後は、その範囲が選択したままになっています。
    続けて文字を入力する場合は、[ → ]キーでカーソルを移動してから入力してください。

    [ ☺ ] ボタンは、絵文字パレットを開きます。
    [ ⏎ ] ボタンは、改行を入れます。
    [ &# ] ボタンは、選択文字列を数値文字参照に変換します。
    [ ]は、このページの送信前の編集内容をフラッシュします。