投稿日 | 19/03/09-19:07 |
---|---|
投稿者 | 田中充 |
参照先 |
プログラムサンプル「プロデルで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
以上、よろしくお願いいたします。
投稿日 | 19/03/09-21:08 |
---|---|
投稿者 | 通り道 |
参照先 |
1つのアプリケーションでは、exeとdllのbit数は、すべてそろえる必要があります。
プロデルの場合、プロデル自体が32bitとなっているため、利用するプラグインも32bitでそろえる必要があります。
投稿日 | 19/03/10-20:30 |
---|---|
投稿者 | 田中充 |
参照先 |
回答ありがとうございます。
> 1つのアプリケーションでは、exeとdllのbit数は、すべてそろえる必要があります。
> プロデルの場合、プロデル自体が32bitとなっているため、利用するプラグインも32bitでそろえる必要があります。
Postgreサーバは64Bit版ですが、DLLは双方C:\Program Files (x86)に保存されているので32ビット版という認識だったのですが、これが間違っているのでしょうか?
投稿日 | 19/03/11-00:15 |
---|---|
投稿者 | 通り道 |
参照先 |
すいません。
npgsqlには、32/64の区別はないと思われます。基本的に、古いDLLやAPI(いわゆるアンマネージド)なものを利用しようとしないかぎり、Any CPUという扱いになり、実行するプラットフォームや予備元の都合で適時どちらでも動きます。
ちょっとNpgsqlのマニュアルを見た限り、正しいメソッドが、「set_Username」の可能性があるため、もしかすると、プロデルのバグか、npgsqlにバージョンのよる差異があるのかもしれません(データベースは、「set_Database」のはずです)
追記。
npgsqlのバージョン2.x.xから3.x.xへの非互換のようです。npgsqlのヴァージョン2を使用するか、プロデル側の対応を待つか になりそうです。
投稿日 | 19/03/25-00:51 |
---|---|
投稿者 | ゆうと |
参照先 |
こんにちは ゆうとです。
配布場所が開発当時から変わってしまっている可能性があります。
Npgsql.dllを含む必要なDLLファイルをダウンロードできるようにしましたので
こちらをお試し下さい。
https://rdr.utopiat.net/files/Produire.Data.PgSql.zip
npgsqlの動向が追えていませんが、アップロードしたものは2.0.11となっておりますので
2.x.x系の最新版でも動作するかと思います。
今後の更新の際に、新しいバージョンでの動作を確認します。
ご確認ください。
通り道さま、フォローの返信をして頂きありがとうございます。
投稿日 | 19/03/29-11:29 |
---|---|
投稿者 | 田中充 |
参照先 |
いつもお世話になっております。田中です。
アップロードしていただいたDLLで正常動作する事を確認しました。
ありがとうございます。
ただ、サンプルは下記の「使用データベース」を「データベース」に修正する必要がありました。
#マニュアルは、「データベース」でしたので、サンプルが古いのだと思います。
>PostgreSQLの使用データベースを、「test」に変える
以上です。
- WebForum -