Watch, Follow, &
Connect with Us

Welcome, Guest
Guest Settings
Help

Thread: Firebird + FireDAC で、接続できなくて困っています。



Permlink Replies: 16 - Last Post: Aug 23, 2017 5:02 PM Last Post By: Kazuki Mori Threads: [ Previous | Next ]
Kazuki Mori

Posts: 13
Registered: 1/24/03
Firebird + FireDAC で、接続できなくて困っています。
Click to report abuse...   Click to reply to this thread Reply
  Posted: Aug 4, 2017 6:13 PM
Delphi XE7 + Firebird 2.5 を使用して、設定は下記のようにしています。

1.Database(Firebird)は、*.fdb を使用しています。
2.接続定義ファイルの内容(FireDAC)は下記の通りです。
  1)ドライバID : FB
2)Database : *.fdb
3)User_Name : sysdba
4)Pasword : masterkey
5)Protocol : Local
6)Server : localhost
7)Port : 64211
3."fbclient.dll"は、Windows\system32内、及び開発中のアプリケーションフォルダの両方に入れ
  ています。また、"FDDrivers.ini"ファイルでも、VendorLib= で設定しています。
4.PAServer を、ポート 64211 で起動しています。

上記の設定で、接続-テストを行うと、下記のエラーメッセージが出ます。
"[FireDAC][Phys][FB]connection rejected by remote interface"

embarcaderoのサイトで調べてみると、
「おそらく、GDS32.DLL を使って FB ドライバで Firebird サーバーに接続したものと思われます。」
という回答になっていますが、パソコン内にある全ての"GDS32.DLL"を削除して、接続しても同じエラーが出ます。
原因、対処方法等をご存じの方がいらっしゃいましたら、ご教授をよろしくお願いします。
igy kk

Posts: 117
Registered: 9/11/03
Re: Firebird + FireDAC で、接続できなくて困っています。
Click to report abuse...   Click to reply to this thread Reply
  Posted: Aug 4, 2017 6:48 PM   in response to: Kazuki Mori in response to: Kazuki Mori
そのfbclient.dllは32bit版ですか?64bit版ですか?

Kazuki Mori wrote:
3."fbclient.dll"は、Windows\system32内、及び開発中のアプリケーションフォルダの両方に入れ
  ています。また、"FDDrivers.ini"ファイルでも、VendorLib= で設定しています。
Kazuki Mori

Posts: 13
Registered: 1/24/03
Re: Firebird + FireDAC で、接続できなくて困っています。
Click to report abuse...   Click to reply to this thread Reply
  Posted: Aug 4, 2017 6:54 PM   in response to: igy kk in response to: igy kk
お世話になります。

fbclient.dllは、32bit版です。
よろしくお願いします。

igy kk wrote:
そのfbclient.dllは32bit版ですか?64bit版ですか?

Kazuki Mori wrote:
3."fbclient.dll"は、Windows\system32内、及び開発中のアプリケーションフォルダの両方に入れ
  ています。また、"FDDrivers.ini"ファイルでも、VendorLib= で設定しています。
igy kk

Posts: 117
Registered: 9/11/03
Re: Firebird + FireDAC で、接続できなくて困っています。
Click to report abuse...   Click to reply to this thread Reply
  Posted: Aug 4, 2017 7:14 PM   in response to: Kazuki Mori in response to: Kazuki Mori
(OSが64bit版であれば、ですが・・)
そのfbclient.dllを Windows\SysWOW64にコピーしてみたら、どうなりますか?

Kazuki Mori wrote:
fbclient.dllは、32bit版です。
Kazuki Mori

Posts: 13
Registered: 1/24/03
Re: Firebird + FireDAC で、接続できなくて困っています。
Click to report abuse...   Click to reply to this thread Reply
  Posted: Aug 4, 2017 7:40 PM   in response to: igy kk in response to: igy kk
OSは、Windows 10 Pro、 64ビットオペレーティングシステムです。
fbclient.dllを Windows\SysWOW64にコピーして試してみましたが、
やはり同じエラーになります。

よろしくお願いします。

igy kk wrote:
(OSが64bit版であれば、ですが・・)
そのfbclient.dllを Windows\SysWOW64にコピーしてみたら、どうなりますか?

Kazuki Mori wrote:
fbclient.dllは、32bit版です。
Hikaru FUKUSHI

Posts: 63
Registered: 11/11/02
Re: Firebird + FireDAC で、接続できなくて困っています。
Click to report abuse...   Click to reply to this thread Reply
  Posted: Aug 6, 2017 5:31 PM   in response to: Kazuki Mori in response to: Kazuki Mori
Moriさん、こんにちは。福士と申します。

ちょっと確認なのですが、Firebirdは正しく動作しているでしょうか?

2.接続定義ファイルの内容(FireDAC)は下記の通りです。
  1)ドライバID : FB
7)Port : 64211
4.PAServer を、ポート 64211 で起動しています。

これだとFirebirdとPAServerで同じポートを使おうとしてしまいます。試しに
管理者権限のあるコマンドプロンプトで netstat -anb としてFirebirdが
使っているポートを確認してみてください。手元の環境ではFirebirdが3150で
動作していますが、以下のように表示されます。

TCP 0.0.0.0:3150 0.0.0.0:0 LISTENING
[fbserver.exe]

--
東洋テクニカルシステム株式会社 システム開発部 福士 光
Hikaru Fukushi (Toyo Technical System Inc.)
mailto:fukushi@tts-inc.co.jp
Kazuki Mori

Posts: 13
Registered: 1/24/03
Re: Firebird + FireDAC で、接続できなくて困っています。
Click to report abuse...   Click to reply to this thread Reply
  Posted: Aug 6, 2017 6:38 PM   in response to: Hikaru FUKUSHI in response to: Hikaru FUKUSHI
福士 さん

お世話になります。
管理者権限のあるコマンドプロンプトで netstat -anb として、確認してみましたが、
Firebirdの[fbserver.exe]に関する記述が見当たりません。
Windowsの"サービス"で確認すると、Firebird Server は手動で実行中となっているのですが・・・。

また、接続定義ファイルのPort を 3150 に変更して接続すると、
 "[FireDAC][Phys][FB]Unable to complete network request to host "localhost".
Failed to establish a connection."
のエラーになります。

よろしくお願いします。


Hikaru FUKUSHI wrote:
Moriさん、こんにちは。福士と申します。

ちょっと確認なのですが、Firebirdは正しく動作しているでしょうか?

2.接続定義ファイルの内容(FireDAC)は下記の通りです。
  1)ドライバID : FB
7)Port : 64211
4.PAServer を、ポート 64211 で起動しています。

これだとFirebirdとPAServerで同じポートを使おうとしてしまいます。試しに
管理者権限のあるコマンドプロンプトで netstat -anb としてFirebirdが
使っているポートを確認してみてください。手元の環境ではFirebirdが3150で
動作していますが、以下のように表示されます。

TCP 0.0.0.0:3150 0.0.0.0:0 LISTENING
[fbserver.exe]

--
東洋テクニカルシステム株式会社 システム開発部 福士 光
Hikaru Fukushi (Toyo Technical System Inc.)
mailto:fukushi@tts-inc.co.jp
Hikaru FUKUSHI

Posts: 63
Registered: 11/11/02
Re: Firebird + FireDAC で、接続できなくて困っています。
Click to report abuse...   Click to reply to this thread Reply
  Posted: Aug 7, 2017 6:07 PM   in response to: Kazuki Mori in response to: Kazuki Mori
Moriさん、こんにちは。福士です。

やはりFirebirdが正常に動作していないように思います。動作環境を確認させてください。

1.Windowsのバージョンはどれでしょうか?また32/64ビット版のどちらでしょうか。
2.InterBaseはインストールされていますか?(Delphiと一緒にDeveloper版がインストール
されているような気がします)またどのポートで動作せていますか?(netstat -anbで
[ibserver.exe]に対応するTCPポートです)
3.Firebirdインストール先のfirebird.confの532行目付近、RemoteServicePortの
設定はどうなっているでしょうか?また先頭のコメントアウト(#)は外してありますか?
4.同じくFirebirdのインストール先のfirebird.logの最後にはどのようなログが残されて
いるでしょうか?

--
東洋テクニカルシステム株式会社 システム開発部 福士 光
Hikaru Fukushi (Toyo Technical System Inc.)
mailto:fukushi@tts-inc.co.jp
Kazuki Mori

Posts: 13
Registered: 1/24/03
Re: Firebird + FireDAC で、接続できなくて困っています。
Click to report abuse...   Click to reply to this thread Reply
  Posted: Aug 7, 2017 11:55 PM   in response to: Hikaru FUKUSHI in response to: Hikaru FUKUSHI
福士さん

お世話になっています。

環境ですが、
1.Windowsのバージョンは、Windows 10 Pro、64ビットオペレーティングシステムです。

2.InterBaseXE3が、Delphi XE7と一緒にインストールされています。
 また、[ibserver.exe]は、TCP 0.0.0.0:3050になっています。
 ※少し前に、InterBaseXE3をアンインストールして、接続を試してみたりもしたのですが
 ダメでした。やり方が悪かったのでしょうか?

3.Firebirdインストール先のfirebird.confの532行目付近、RemoteServicePortの
設定は、#RemoteServicePort = 3050 となっています。
先頭のコメントアウト(#)は外していません。まずかったでしょうか?

4.firebird.logの最後のログは、下記のようになっています。
    MORI-PC (Client)  Sat Aug 05 08:58:08 2017
INET/inet_error: connect errno = 10061

お手数をおかけしますが、よろしくお願いします。
Hikaru FUKUSHI

Posts: 63
Registered: 11/11/02
Re: Firebird + FireDAC で、接続できなくて困っています。
Click to report abuse...   Click to reply to this thread Reply
  Posted: Aug 8, 2017 7:16 PM   in response to: Kazuki Mori in response to: Kazuki Mori
Moriさん、こんにちは。福士です。

ということはFirebirdが正しく起動していない(InterBaseもFirebirdもデフォルトで同じTCP/3050を
使うため、ポートが重複している)のが原因です。まずFirebirdのポートを変更し、FireDACでそのポートを
使うように変更します。

1.Firebird.confをデスクトップなどUACの影響を受けない場所にコピーし、RemoteServicePortを
3050以外の未使用ポートに変更し、行頭の#を外して保存し、これをFirebirdインストール先に
上書きでコピーします(直接confファイルを書き換えようとするとUACの罠にはまります)。
2.Firebird Server Guardianサービスを停止して再開します。
3.Firebird.logの最後がエラーになっていないこと("Guardian starting: ..."となっている
こと)を確認します。
4.FireDACの接続定義ファイルのポートを1.で指定したポートに変更して、接続テストを試してください。

--
東洋テクニカルシステム株式会社 システム開発部 福士 光
Hikaru Fukushi (Toyo Technical System Inc.)
mailto:fukushi@tts-inc.co.jp
Kazuki Mori

Posts: 13
Registered: 1/24/03
Re: Firebird + FireDAC で、接続できなくて困っています。
Click to report abuse...   Click to reply to this thread Reply
  Posted: Aug 9, 2017 11:43 PM   in response to: Hikaru FUKUSHI in response to: Hikaru FUKUSHI
福士 さん

お世話になっています。

ご指示の通り設定すると、うまく接続できました。
ありがとうございました。

ところで、その接続過程で1つ問題が発生しました。
接続テストに際して、Firebiredで最初から作成した"*.fdb" は、問題なく接続できるのですが、
"IBPump.exe"等を使用して".DBF"から".fdb" に変換したファイルは、下記のようなエラーメッセージが出て、
接続できませんでした。
[FireDAC][Phys][FB]unsupported on-disk structure for file C:\KM FILE\KANKON.FDB; found 15.0, support 11.2

変換した"KANKON.FDB"は、"*.fdb" ファイルとして認識されているように思われるのですが、
原因が分かりません。

よろしくお願いします。

Hikaru FUKUSHI

Posts: 63
Registered: 11/11/02
Re: Firebird + FireDAC で、接続できなくて困っています。
Click to report abuse...   Click to reply to this thread Reply
  Posted: Aug 10, 2017 1:00 AM   in response to: Kazuki Mori in response to: Kazuki Mori
Moriさん、こんにちは。福士です。

ご指示の通り設定すると、うまく接続できました。

うまくいったようで何よりです。

接続テストに際して、Firebiredで最初から作成した"*.fdb" は、問題なく接続できるのですが、
"IBPump.exe"等を使用して".DBF"から".fdb" に変換したファイルは、下記のようなエラーメッセージが出て、
接続できませんでした。
[FireDAC][Phys][FB]unsupported on-disk structure for file C:\KM FILE\KANKON.FDB; found 15.0, support 11.2

これはエラーメッセージそのまんまです。ODS(On-Disk Structure)バージョンと
してFDBファイルは15.0(=InterBase XE3)になっているが、Firebirdとしては11.2
(=Firebird 2.5)のものをサポートしている、つまりFirebird 2.5ではODS 15は
扱えないのでエラー、ということです。試していませんが、InterBase XE3環境で
gbakでバックアップしたファイルをFirebird 2.5環境でgbakでリストアすれば
いいかもしれません。

--
東洋テクニカルシステム株式会社 システム開発部 福士 光
Hikaru Fukushi (Toyo Technical System Inc.)
mailto:fukushi@tts-inc.co.jp
Kazuki Mori

Posts: 13
Registered: 1/24/03
Re: Firebird + FireDAC で、接続できなくて困っています。
Click to report abuse...   Click to reply to this thread Reply
  Posted: Aug 17, 2017 6:04 PM   in response to: Hikaru FUKUSHI in response to: Hikaru FUKUSHI
福士 さん

お世話になっています。
ご指示頂いた方法で、バックアップ及びリストアを下記のようにやってみました。

バックアップ
 InterBase XE3環境でgbakを実行
 gbak -b -user sysdba -password masterkey kankon.fdb kankon.fbk

リストア
 Firebird 2.5環境でgbakを実行
gbak -r -user sysdba -password masterkey kankon.fbk kankon.fdb

結果は、バックアップで"kankon.fbk"は無事にできたのですが、
リストアで"kankon.fdb"を作成しようとすると、下記のようにエラーが出て
うまくいきませんでした。

gbak:do not recognize table attribute 18 -- continuing
(上記行が、6行)
gbak:do not recognize table attribute 12 -- continuing
 (上記行が、5行)
gbak:ERROR:arithmetic exception, numeric overflow, or string truncation
gbak:ERROR: Cannot transliterate character between character sets
gbak:ERROR:gds_$send failed
gbak:Exiting before completion due to errors

何か間違っているのでしょうか?
よろしくお願いします。

Hikaru FUKUSHI

Posts: 63
Registered: 11/11/02
Re: Firebird + FireDAC で、接続できなくて困っています。
Click to report abuse...   Click to reply to this thread Reply
  Posted: Aug 17, 2017 9:41 PM   in response to: Kazuki Mori in response to: Kazuki Mori
Moriさん、こんにちは。福士です。

ご指示頂いた方法で、バックアップ及びリストアを下記のようにやってみました。
(略)
結果は、バックアップで"kankon.fbk"は無事にできたのですが、
リストアで"kankon.fdb"を作成しようとすると、下記のようにエラーが出て
うまくいきませんでした。

思ったよりもInterBase XE3とFirebirdでは内部のデータの扱いが異なって
きている、ということですね。DBFから変換するときにInterBaseにではなく、
Firebirdに対して変換する必要があるのでしょう。

--
東洋テクニカルシステム株式会社 システム開発部 福士 光
Hikaru Fukushi (Toyo Technical System Inc.)
mailto:fukushi@tts-inc.co.jp
Kazuki Mori

Posts: 13
Registered: 1/24/03
Re: Firebird + FireDAC で、接続できなくて困っています。
Click to report abuse...   Click to reply to this thread Reply
  Posted: Aug 23, 2017 1:47 AM   in response to: Hikaru FUKUSHI in response to: Hikaru FUKUSHI
福士 さん

お世話になっています。

思ったよりもInterBase XE3とFirebirdでは内部のデータの扱いが異なって
きている、ということですね。DBFから変換するときにInterBaseにではなく、
Firebirdに対して変換する必要があるのでしょう。

いろいろとやってみましたが、うまくいきませんでした。
DBFから直接Firebirdに対して変換する方法、ソフトなどはあるのでしょうか?
ご存じでしたら、よろしくお願いします。
Hikaru FUKUSHI

Posts: 63
Registered: 11/11/02
Re: Firebird + FireDAC で、接続できなくて困っています。
Click to report abuse...   Click to reply to this thread Reply
  Posted: Aug 23, 2017 4:17 AM   in response to: Kazuki Mori in response to: Kazuki Mori
Moriさん、こんばんは。福士です。

DBFから直接Firebirdに対して変換する方法、ソフトなどはあるのでしょうか?

たとえば、InterBase 6あたりとFirebird 1.5あたりは互換性がありますので、
InterBaseを入れずにかわりにFirebird 1.5を入れた環境で

"IBPump.exe"等を使用して".DBF"から".fdb" に変換

して、Firebird 1.5のgbakでバックアップしたファイルをFirebird 2.5の環境で
リストアする、とかではどうでしょうか。

# もはやこのフォーラムの範囲からも当初の質問からもは外れている気もしますが、
# 続けるならもう少し具体性のある("等"とかではなく)情報の提示がほしいですね。
# 何の前提もなく.DBFとかIBPump.exeではなく、どのようなソフトウェアのどの
# バージョンで作られたどのような形式のファイルなのかとか、どこにあるどの
# バージョンのどの実行ファイルなのかとか…。十分な情報を出さないと的確な
# 回答は得られません。

--
東洋テクニカルシステム株式会社 システム開発部 福士 光
Hikaru Fukushi (Toyo Technical System Inc.)
mailto:fukushi@tts-inc.co.jp
Kazuki Mori

Posts: 13
Registered: 1/24/03
Re: Firebird + FireDAC で、接続できなくて困っています。
Click to report abuse...   Click to reply to this thread Reply
  Posted: Aug 23, 2017 5:02 PM   in response to: Hikaru FUKUSHI in response to: Hikaru FUKUSHI
福士 さん

お世話になっています。
情報不足にもかかわらず、いろいろと具体的なアドバイスをありがとうございました。
一度、旧バージョンから段階を踏んで変換してみます。
ありがとうございました。
Legend
Helpful Answer (5 pts)
Correct Answer (10 pts)

Server Response from: ETNAJIVE02