Postgreのdllのインストール方法

投稿者:田中充 投稿日:2019/03/09(Sat) 19:07:21 No.2409

プログラムサンプル「プロデルでPostgreSQL」でエラーが出力されます。

Npgsql.dllは、https://www.enterprisedb.com/downloads/postgres-postgresql-downloads から
64ビット版をインストールし、stack builderよりv3.2.6-1をインストールしました。
そして、C:\Program Files (x86)\PostgreSQL\Npgsql\bin\netstandard2.0\Npgsql.dllをプロデルの実行パスにコピーしました。

Mono.Security.dllは、https://www.mono-project.com/download/stable/ より32ビット版をインストールし、C:\Program Files (x86)\Mono\lib\mono\4.7-api\Mono.Security.dllをプロデルの実行パスにコピーしました。

上記dllのインストールを誤っているのでは、無いかと思います。
インストールに成功している方のご教授をお願いいただけませんでしょうか?

★ソース抜粋★
//プロデルからPostgreSQLデータベースへ接続する例
//PostgreSQLサーバへ接続するには、Npgsql.dllおよびMono.Security.dllが必要です。

「Produire.Data.PgSql.dll」を利用する
PostgreSQLというPostgreSQLデータベースを作る

PostgreSQLのサーバを、「localhost」に変える
PostgreSQLのユーザ名を、「test」に変える →ここでエラーとなる(サーバ、パスワード、ポートはエラーとならない)
PostgreSQLのパスワードを、「pass」に変える
PostgreSQLのポートを、5432に変える
PostgreSQLの使用データベースを、「test」に変える →ここもエラーとなる

★エラー内容★
プログラムの実行中にエラーが発生しました。
文法に間違えがないか、指定した値が正しいか、確認してください。

文法や使い方が正しいにもかかわらず、このエラーが表示される場合は、不具合の可能性があります。

発生した例外:
メソッドが見つかりません: 'Void Npgsql.NpgsqlConnectionStringBuilder.set_UserName(System.String)'

[エラー番号901] [はじめ:8行目]

◆動作環境情報◆
プロデル 1.6.949
Windows 10(64)
メモリ:3.99 GB

以上、よろしくお願いいたします。

Re: Postgreのdllのインストール方法

投稿者:通り道 投稿日:2019/03/09(Sat) 21:08:25 No.2410

1つのアプリケーションでは、exeとdllのbit数は、すべてそろえる必要があります。
プロデルの場合、プロデル自体が32bitとなっているため、利用するプラグインも32bitでそろえる必要があります。

Re^2: Postgreのdllのインストール方法

投稿者:田中充 投稿日:2019/03/10(Sun) 20:30:16 No.2411

回答ありがとうございます。

> 1つのアプリケーションでは、exeとdllのbit数は、すべてそろえる必要があります。
> プロデルの場合、プロデル自体が32bitとなっているため、利用するプラグインも32bitでそろえる必要があります。

Postgreサーバは64Bit版ですが、DLLは双方C:\Program Files (x86)に保存されているので32ビット版という認識だったのですが、これが間違っているのでしょうか?

Re^3: Postgreのdllのインストール方法

投稿者:通り道 投稿日:2019/03/11(Mon) 00:15:33 No.2412

すいません。
npgsqlには、32/64の区別はないと思われます。基本的に、古いDLLやAPI(いわゆるアンマネージド)なものを利用しようとしないかぎり、Any CPUという扱いになり、実行するプラットフォームや予備元の都合で適時どちらでも動きます。

ちょっとNpgsqlのマニュアルを見た限り、正しいメソッドが、「set_Username」の可能性があるため、もしかすると、プロデルのバグか、npgsqlにバージョンのよる差異があるのかもしれません(データベースは、「set_Database」のはずです)

追記。
npgsqlのバージョン2.x.xから3.x.xへの非互換のようです。npgsqlのヴァージョン2を使用するか、プロデル側の対応を待つか になりそうです。

Re^4: Postgreのdllのインストール方法

投稿者:ゆうと 投稿日:2019/03/25(Mon) 00:51:20 No.2414

こんにちは ゆうとです。

配布場所が開発当時から変わってしまっている可能性があります。
Npgsql.dllを含む必要なDLLファイルをダウンロードできるようにしましたので
こちらをお試し下さい。
https://rdr.utopiat.net/files/Produire.Data.PgSql.zip

npgsqlの動向が追えていませんが、アップロードしたものは2.0.11となっておりますので
2.x.x系の最新版でも動作するかと思います。

今後の更新の際に、新しいバージョンでの動作を確認します。
ご確認ください。

通り道さま、フォローの返信をして頂きありがとうございます。

Re^5: Postgreのdllのインストール方法

投稿者:田中充 投稿日:2019/03/29(Fri) 11:29:26 No.2416

いつもお世話になっております。田中です。

アップロードしていただいたDLLで正常動作する事を確認しました。
ありがとうございます。

ただ、サンプルは下記の「使用データベース」を「データベース」に修正する必要がありました。
#マニュアルは、「データベース」でしたので、サンプルが古いのだと思います。

>PostgreSQLの使用データベースを、「test」に変える


以上です。

▲ページの先頭へ

- WebForum -