2014年12月18日

Delphi / Appmethod Advent Calendar 2014 / 12 / 18

Delphi FireDAC Connection VCL版 

DelphiXE7のFireDACから複数(6種類)のデータベースに2層で接続する、手順をまとめてみました。

手元で、行えるように、Windows7Pro版64Bitに、5つのデータベースをインストールして、FireDACからの接続を試みます。
複数のデータベースに、同じ環境で、接続することによって、接続手順などの微妙な違いがわかるかと思います。

インストールするデータベースは、すべて無償で使用できるものを使用します。
Oracle Database Express Edition 11g Release 2 (64Bit)
SQL Server 2014 Express  (64Bit)
PostgreSQL9.3 (64Bit)
MySQL5.6 (32Bit)
Firebird2.5 (64Bit)
をインストールします。(何度か、Windows7にインストールを試みましたが、特にインストールの順序などは関係ないようでした)

SQLite3は、ローカルにインストールします。

環境 サ−バ− Atom330 1.6GHz メモリ2GB (退役機です) と 開発環境のマシン 2台構成です。
w01.png


最初に決めておくこととして、6項目
 1.ServerのIPアドレス192.168.24.112(任意です、Windows7のIPを自分で、決めておきます)
 2.ログインユーザー名管理者ユーザーとしてログイン
 3.ログインパスワードPasswd6
 4.データベース名testdb
 5.ServerキャラクターSET utf8
 6.ベンダーライブラリーxxx.dll


(1)Oracle Database Express Edition 11g Release 2 (64Bit)への接続  (サンプルコード 101_Oracle_11g_XE.zip)
 1.ServerのIPアドレス192.168.24.112
 2.ログインユーザー名system
 3.ログインパスワードPasswd6
 4.データベース名xe(Oracleエクスプレスの場合は、データベース名は変更できません)
 5.ServerキャラクターSET utf8
 6.ベンダーライブラリーoci.dll (oraociei11.dll)(tnsnames.ora)が必要
101.png
101-2.png


(2)SQL Server 2014 Express  (64Bit)への接続 (サンプルコード 102_MSSQL_2014_Express.zip)
 1.ServerのIPアドレス192.168.24.112
 2.ログインユーザー名sa
 3.ログインパスワードPasswd6
 4.データベース名testdb
 5.ServerキャラクターSET utf8
 6.ベンダーライブラリー(sqlncli11.dll) 2012にまでは、必要でしたが、2014では、指定しなくても大丈夫のようです。
102.png

(3)PostgreSQL9.3 (64Bit)への接続 (サンプルコード 103_PostgreSQL93.zip)
 1.ServerのIPアドレス192.168.24.112
 2.ログインユーザー名postgres
 3.ログインパスワードPasswd6
 4.データベース名testdb
 5.ServerキャラクターSET utf8
 6.ベンダーライブラリーlibpq.dll (libeay32.dll)(ibiconv-2.dll)(libintl.dll)(libintl-8.dll)(libpq.dll)(ssleay32.dll)が必要
104.png

(4)MySQL5.6 (32Bit)への接続 (標準インストーラが32ビットのようなので) (サンプルコード 104_MySQL56.zip)
 1.ServerのIPアドレス192.168.24.112
 2.ログインユーザー名usr1
 3.ログインパスワードPasswd6
 4.データベース名testdb
 5.ServerキャラクターSET utf8
 6.ベンダーライブラリーlibmysql.dll 
104.png

(5)Firebird2.5 (64Bit)への接続  (サンプルコード 105_FbSQL253.zip)
 1.ServerのIPアドレス192.168.24.112
 2.ログインユーザー名SYSDBA
 3.ログインパスワードPasswd6 (masterkeyから変更)
 4.データベース名c:\fb253\testdb.fdb  (フルパスが必要 拡張子があったほうがよい)
 5.ServerキャラクターSET utf8
 6.ベンダーライブラリーfbclient.dll 
105.png

(6)SQLite3へのローカル接続  (サンプルコード 106_SQLite3.zip)
 1.ServerのIPアドレス不要
 2.ログインユーザー名不要
 3.ログインパスワード不要
 4.データベース名testdb.s3db  (フルパスと拡張子があったほうがよい)
 5.ServerキャラクターSET utf8
 6.ベンダーライブラリーsqlite3 .dll 
106.png

Windows7で、作業を行う理由は、「プロになるための データベース技術入門」にも記載されていますが、開発者が手元で環境を構築するのに最適だからと思われます。

サーバーでの作業は、各データベースこどのポート番号の開放。

(1)Oracle Database Express Edition 11g Release 2 (64Bit) 初期状態は接続不可
サーバーの oraociei11.dll / tnsnames.oraをクライアントへ

(2)SQL Server 2014 Express  (64Bit) 初期状態は接続不可
testdbを作成

(3)PostgreSQL9.3 (64Bit)  初期状態は接続不可
testdbを作成
他のマシンよりの接続許可の設定が必要

(4)MySQL5.6 (32Bit) 初期状態は接続不可
testdbを作成
接続許可のユーザを作成

(5)Firebird2.5 (64Bit) 初期状態で接続可
testdb.fdbを作成
パスワードをmasterkeyから変更

(6)SQLite3  初期状態は接続可
sqlite3 .dll を配置するOK。


の資料などを参考にさせていただいております。


今回すべて、VCLののサンプルですが、RAD Studio勉強会@Osakaでは、今後、FireMonkeyでの、接続などもクローズアップしていく予定でございますので、近隣の方は、是非ご参加くださいませ。


3層での接続は、すでに、DataSnapサーバーが存在しますが、Android端末から2層接続できると、従来のクラサバでの構築方法で利用できるので、恩恵を受けるかたも、意外と多いのではないてじょうか?
Firebird3betaで、Firebird Client 3.0 Alpha 2 for Android がDownloadできるようですが、MySQL/PostgreSQLとかもで、Android用のライブラリがあれば便利ではないかと思っています(すでに存在していて、知らないだけかも知れませんが)。

Windows8タブレットでは、VPNなどでの2層接続が現在の環境で、実現できますので、格安タブレットが国内でも、販売されれば、こちらも、利用シーンが増えるのかもしれませんね。
posted by a23 at 00:00| Comment(0) | 016 サンプル