DelphiXE7エンタープライズをWin7で最近使い始めました。
以前Delphi7を使っていました。
PostgreSQL9.5でDB、テーブルを作りCSVファイルからインポートしデータが見られる状態まで行き着きました。
そこでDBのデ−タを変更などするためDelphiXE7を使おうと接続のためODBCドライバーをWIN7のクライアントPCに入れました。
しかし、この後が出来ません。
他のサイトにはFireDACを使うと書いてあったりしますが、詳しく書いてあるサイトはありません。
PostgreSQLにDelphiXE7で接続する方法を教えてください。
>他のサイトにはFireDACを使うと書いてあったりしますが、詳しく書いてあるサイトはありません。
デベロッパーキャンプ・アーカイブ - カテゴリ別
http://www.embarcadero.com/jp/developer-camp-japan/archive-by-categories
にある
>「はじめてのFireDAC」
あたりでFireDACの使い方を確認してみるのは、いかがですか?
# PDFで記載されている TADxxxx は TFDxxxxに読みかえる必要はありそうですけど。
igy様、夜遅くにも関わらずご指導ありがとうございます。
FireDACでPostgreSQL接続にはDLLが必要なようでVC++でソースからコンパイルしなければならないようです。
とても私では不可能です。
FireDAC以外でPostgreSQL接続する方法はないのでしょうか。
教えてください。
> FireDACでPostgreSQL接続にはDLLが必要なようでVC++でソースからコンパイルしなければならないようです。
とのことですが、
PostgreSQL への接続(FireDAC)
http://docwiki.embarcadero.com/RADStudio/XE7/ja/PostgreSQL_%E3%81%B8%E3%81%AE%E6%8E%A5%E7%B6%9A%EF%BC%88FireDAC%EF%BC%89
を見ると、
> バージョン 9.0 のクライアント ファイル一式は次のとおりです。
> libpq.dll
> ssleay32.dll
> libeay32.dll
> libintl-8.dll
> libiconv-2.dll
> これらのファイルは、サーバーのインストール フォルダの Bin フォルダから取得して
とあるようです。
igy様、朝早い回答ありがとうございます。
早速試してみます。
移動中のため職場に行ってから実行します。
igy様に教えて頂いたDLLを入れました。
ただ、まだアプリができていないので無意味かと思いました。
ODBCの32bit番でodbcad32から設定しアクセス成功でした。
ここまでは成功しました。
しかし、delphiXE7のFDConnectionの接続エディタで躓いております。
ドライバIDと接続定義名の欄に設定したドライバ名などが表示されません。
なにか手順が欠けているのでしょうか。
教えて下さい。
追記です。
当方のWin7は64ビットですので64ビット版のODBCドライバも入れました。
しかし、「32ビット版を入れなければならない」というサイトがあったので両方入れました。
もちろん違う名前にしました。
皆様よろしくお願いします。
ODBC ではなく、
今朝、挙げた
PostgreSQL への接続(FireDAC)
http://docwiki.embarcadero.com/RADStudio/XE7/ja/PostgreSQL_%E3%81%B8%E3%81%AE%E6%8E%A5%E7%B6%9A%EF%BC%88FireDAC%EF%BC%89
の
接続定義パラメータ
や
使用例
に記載があるように、
DriverIDにPGを指定する方法は、いかがですか?
igy様、ありがとうございます。
まるっきり勘違いしていました。
再度やり直します。
ご指導ありがとうございます。
自宅にはdelphiXE7の環境がないので来週再度挑戦します。
重ねてお礼申し上げます。
接続テストの段階でエラーで躓いています。
FireDAC接続エディタ[FDConnection1]の内容です。
Pooled False
Database PGX4(仮です)
User_Name postgres
Password xxxxxxxx
Server 127.0.0.1
Port 5432
LoginTimeout 30
CharacterSet WIN1251
ExtendedMetadata False
OidAsBlob Yes
UnknownFormat BYTEA
ApplicationName ALLBooks
PGAdvanced 空欄
MetaDefSchema AKB
MetaCurCchema 空欄
以上にしましたが次のとおりエラーでした。
[FireDAC][Phys][PG]-314,ベンダライブラリ[libpq.dll]を読み込めません。指定されたファ
イルが見つかりません。
ヒント:PATHまたはアプリケーションのEXEディレクトリに含まれているか、X86ビット
であるかを確認して下さい。
PATHはシステム環境変数とユーザーの環境変数の最後に[libpq.dll]を置いたフォルダを追
加し再起動しました。
環境変数の編集は初めてで不安です。
どこが悪いのでしょうか。教えて下さい。
> ヒント:PATHまたはアプリケーションのEXEディレクトリに含まれているか、X86ビット
> であるかを確認して下さい。
ちなみに、DLLは32bitのものですか?
> PATHはシステム環境変数とユーザーの環境変数の最後に[libpq.dll]を置いたフォルダを追
> 加し再起動しました。
あるいは、記載に間違いとかは、ないですか?
igy様、いつもご指導いただきありがとうございます。
私自身、DLLが引っかかっていました。
PostgreSQLは64ビットのProgramFilesにありました。
そこのDLLをコピーしてPATHを通しました。
ということは、このDLLは64ビットということなのでしょうか。
32BITのDLLはどこに在るのでしょうか。
教えて下さい。
igy様、いつもお世話様です。
同じPC(64ビットWIN7)に32ビットのpostgresqlをインストールしました。
32ビットPOSTGRESQLは停止しDLLだけアプリのフォルダにコピーしました。
でも同じエラーメッセージが出ます。
このやり方ではダメなのでしょうか。
そもそも64ビットのPOSTGRESQLはDelphiXE7ではダメなのでしょうか。
教えて下さい。
> DLLだけアプリのフォルダにコピーしました。
アプリのフォルダにコピーせず、
> そこのDLLをコピーしてPATHを通しました。
上記のようにしたら、どうなりますか?
> そもそも64ビットのPOSTGRESQLはDelphiXE7ではダメなのでしょうか。
一般論ですが、RDBはサーバ側とクライアント側で32ビット版と64ビット版をそれぞれ独立して選択できます。
しかしインストーラはデフォルトでは選択したものしか入らないのが普通です。64ビット版のRDBのサーバを
インストールするとそのままではクライアントも64ビット版のものしか入らない、ということです。
一方でクライアント側はそれを使用するアプリケーションと同じものを必要とします。32ビット版の
アプリケーションであれば32ビット版のクライアントが、64ビット版のアプリケーションであれば
64ビット版のクライアントが要る、ということです。
つまりOSが64ビット版だからとRDBも64ビット版のものを入れたのであれば、32ビット版のアプリケーションを
動作させるためには追加で32ビット版のクライアントを別途インストールする必要がある、と考えてください。
# もちろんアプリケーションを64ビット版で作るのなら64ビット版のクライアントが必要です。
igy様、おかげさまで接続できました。
本当にありがとうございます。
約8年ぶりで、Delhiのサイトに戻ってきました。
懐かしさでいっぱいです。
接続できましたので、このスレッドはクローズします。
次の問題が出てしまいましたのでスレッドを変えてご指導願いたいと思います。
igy様ありがとうございます。
今後ともご指導よろしくお願いします。
通りすがりさん、投稿時が重なり、御礼を失してしまいました。
申し訳ございません。
ご指導ありがとうございました。
この質問はクローズとさせていただきます。
ツイート | ![]() |