- 締切済み
postgreSQL を OleDB 接続
postgreSQL が Linux:CentOS上にあり OS:Windows Vista 開発環境 : VisualStudio 2005 言語 : C# ソフトを開発しております、接続は正常に終了(OleDbConnectionのOpen())するのですが 読み込みコマンドが失敗します(OleDbDataAdapterのFill) "'PostgreSQL OLE DB Provider' は失敗しましたが、エラー メッセージはありません。結果コードは -2147221163(0x80040155) です。" 解決方法をご存知のかたいらっしゃいますでしょうか?
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- Rilakkuma_san
- ベストアンサー率32% (33/101)
ANo.1です。 PgOleDbのバージョンを書き忘れました。 1.0.0.20です。 お使いのPgOleDbのバージョンが1.0.0.19の場合、 ドライバー側にバグがあるようです。
- Rilakkuma_san
- ベストアンサー率32% (33/101)
こんにちわ。 PostgreSQLとのOLE DB 接続なのでPgOleDbを使用しているって事でしょうかね? こちらの環境では正常に接続、SQL発行ができましたが・・・ VBのソースですので適宜読み替えてください。 Dim conn As OleDb.OleDbConnection = New OleDb.OleDbConnection Dim cStr As String = "Provider=PostgreSQL OLE DB Provider;Data Source=[サーバ];Location=[DB];User ID=[ユーザ];Password=[パスワード]" conn.ConnectionString = cStr conn.Open() Dim sql As String = "[SELECT文]" Dim cmd As OleDb.OleDbCommand = New OleDb.OleDbCommand(sql, conn) Dim da As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter(cmd) Dim ds As New DataSet Dim dt As DataTable da.Fill(ds) dt = ds.Tables(0) Me.DataGridView1.DataSource = dt da.Dispose() cmd.Dispose() conn.Close() conn.Dispose() conn = Nothing また、他にも同様の現象の記事がありますので参考になれば。 (もう既に見ているかもしれませんが。。。) 「Fillメソッドでのエラー」 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=35607&forum=7 Npgsqlの使用も検討してはどうでしょうか?