@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

postgre+ASP.NETのクエリ実行について

1
投稿者投稿内容
akko_mini
会議室デビュー日: 2006/03/18
投稿数: 2
投稿日時: 2006-03-18 18:06
初めまして、akko_miniと申します。

oledbを使用してselect文を発行し、結果を取得しようとしています。
下記にソースを表記いたします。

【環境】
OS  / XP
言語 / .NET2003
     .Framework 1.1
DB  / postgreSql

==ソース======================================
Dim oCon As New OleDb.OleDbConnection("Provider=PostgreSql OLE DB Provider;..")
Dim oCom As New OleDb.OleDbCommand("select * from test_tbl",oCon)

oCon.Open()
Dim oRd As OleDb.OleDbDataReader = oCom.ExecuteReader()

(以下省略...)
==============================================

実行したところ「エラー情報:0x80040155がありません」エラーが出ています。

デバッグしてみるとoCom.ExecuteReaderで落ちていました。
oCom.Openは正常に通っていますから、
postgreへの接続はうまくいっているような気がします。
ちなみにselect文をinsert文にし、
oCom.ExecuteReaderの箇所をExecuteNonQueryに変更し実行したところ
正常にテーブルへ登録していました。

何が原因でExecuteReaderで落ちているのでしょうか?
ソースの書き方が間違っているのでしょうか?
色々と調べてみたのですが原因さえわからない状態です。

ご指摘・ご教授よろしくお願いいたします。

[ メッセージ編集済み 編集者: akko_mini 編集日時 2006-03-18 18:08 ]
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-03-18 21:14
例外情報は、例外の種類、Message プロパティ、例外によってはその他のプロパティの情報を、漏らさず書き出してください。

例:
Catch ex As Exception
  Debug.Write(ex.ToString())
End Try
で、「出力」ウインドウに出力される内容


そこに書いてあることを理解するところが、第一歩です。

〆 written by Jitta@わんくま同盟 on 2006/03/18
akko_mini
会議室デビュー日: 2006/03/18
投稿数: 2
投稿日時: 2006-03-18 22:31
Jittaさんご返答ありがとうございます。

投稿内容に不備がありまして申し訳ございませんでした。
早速ご指摘頂きました例外取得方法で例外の内容を抜き出しました。

=========================================
System.Data.OleDb.OleDbException:
エラー情報 : 0x80040155 がありません。
at System.Data.OleDb.OleDbDataReader.ProcessResults(Int32 hr)
at System.Data.OleDb.OleDbDataReader.NextResult()
at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
at System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior)
at System.Data.OleDb.OleDbCommand.ExecuteReader()
=========================================

自分なりにネットなどで調べてみたのですが、
まだ例外内容がよく理解できません。

申し訳ないですが、もう少しお力添え頂けますでしょうか?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-03-19 10:54
引用:

akko_miniさんの書き込み (2006-03-18 18:06) より:

実行したところ「エラー情報:0x80040155がありません」エラーが出ています。
(snip)
何が原因でExecuteReaderで落ちているのでしょうか?


ExecuteNonQuery は問題なかったようですので、
例外情報どおりインターフェイスがないみたいですね。

少し調べてみます。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-03-19 10:58
いきなりそれらしいのを発見しました。

  Bug using C# OLEDB connection and threads

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-03-19 19:06
NpgSql のバージョンは?

これっぽい
http://gborg.postgresql.org/pipermail/oledb-dev/2004-November/000156.html

本家サイトにもある
http://archives.postgresql.org/pgsql-bugs/2005-11/msg00134.php


Google キーワード:
0x80040155 postgresql

[ メッセージ編集済み 編集者: Jitta 編集日時 2006-03-19 19:07 ]
1

スキルアップ/キャリアアップ(JOB@IT)