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

DataAdapterの例外エラーの回避方法

投稿者投稿内容
NEKO
常連さん
会議室デビュー日: 2004/08/27
投稿数: 21
投稿日時: 2004-09-30 20:13
DataAdapterのFILLで例外エラーになってしまいます。
同じSQL文で、条件が変わる(件数が多くなる)と、エラーになってしまいます。
解決方法はあるのでしょうか?

★SQL★
SELECT CEILING(CAST(COUNT(*) AS MONEY) / 5) SHEET_COUNT
FROM T_IRAINUSI LEFT OUTER JOIN
(SELECT * FROM T_TODOKESAKI
WHERE DELETE_FLG='0' AND STOP_FLG='0') T_TODOKESAKI
ON T_IRAINUSI.IRAINUSI_NO=T_TODOKESAKI.IRAINUSI_NO
WHERE T_IRAINUSI.DELETE_FLG='0'
AND T_IRAINUSI.JIZEN_FLG<>'1'
AND T_IRAINUSI.KATEN_CODE>='2201'
AND T_IRAINUSI.KATEN_CODE<='2201'
GROUP BY T_IRAINUSI.IRAINUSI_NO


★ソースコード★

objDataAdapter = New SqlDataAdapter
objDataAdapter.SelectCommand = New SqlCommand

With objDataAdapter.SelectCommand
.Connection = objConn
.CommandTimeout = clsGlobal.DbCommandTimeout
.CommandType = CommandType.Text
.CommandText = strSql
End With

objDataAdapter.Fill(objDataTable) <-- ここで例外エラーになります。

burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2004-09-30 20:24
エラーの内容を書かないとコメントのしようがないです。
開発環境と使用しているDBぐらいは最低書きましょう。
あと「条件が変わる(件数が多くなる)」っていうのも、よくわかりません。
Where句の条件が増えるって意味でしょうか?
それともデータ件数が増えるって意味でしょうか?
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2004-09-30 23:41
件数が増えると出るという事から、推測ですが・・・
クエリに時間がかかっていませんか?
タイムアウトしてるのかなと・・・。
そういう場合はコネクションおよびweb.configで設定できるタイムアウト値を適切に設定してあげれば良いです。

#一応、自分が持ってる情報をちゃんと提供した方が回答は得やすいですよ。
NEKO
常連さん
会議室デビュー日: 2004/08/27
投稿数: 21
投稿日時: 2004-10-01 09:51
すいません。
環境など書いていませんでした。

Windowsのアプリ
言語:VB.NET
DB:SQL SERVER2000
OS:Windows XP Pro

★下記SQL文の条件が変わる場合です。
KATEN_CODEが、'1000'の場合は、エラーにならない(検索結果:100件)
KATEN_CODEが、'2201'の場合は、エラーになる。 (検索結果:15000件)
※クエリアナライザで、実行すると、検索結果は戻ってきます。

AND T_IRAINUSI.KATEN_CODE>='1000'
AND T_IRAINUSI.KATEN_CODE<='1000'

AND T_IRAINUSI.KATEN_CODE>='2201'
AND T_IRAINUSI.KATEN_CODE<='2201'

★エラー
デバックすると、objDataAdapter.Fill(objDataTable) の箇所から下記の
コードまで、スッキプします。

Catch ex As Exception
Throw ex
Finally
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2004-10-01 09:53
引用:

NEKOさんの書き込み (2004-10-01 09:51) より:
すいません。
環境など書いていませんでした。

Windowsのアプリ
言語:VB.NET
DB:SQL SERVER2000
OS:Windows XP Pro

★下記SQL文の条件が変わる場合です。
KATEN_CODEが、'1000'の場合は、エラーにならない(検索結果:100件)
KATEN_CODEが、'2201'の場合は、エラーになる。 (検索結果:15000件)
※クエリアナライザで、実行すると、検索結果は戻ってきます。

AND T_IRAINUSI.KATEN_CODE>='1000'
AND T_IRAINUSI.KATEN_CODE<='1000'

AND T_IRAINUSI.KATEN_CODE>='2201'
AND T_IRAINUSI.KATEN_CODE<='2201'

★エラー
デバックすると、objDataAdapter.Fill(objDataTable) の箇所から下記の
コードまで、スッキプします。

Catch ex As Exception
Throw ex
Finally



で、キャッチした例外の内容は?
_________________
「伝える」とは「人に云う」と書く。
http://d.hatena.ne.jp/NAL-6295/
NEKO
常連さん
会議室デビュー日: 2004/08/27
投稿数: 21
投稿日時: 2004-10-01 10:24
内容

>? err
{Microsoft.VisualBasic.ErrObject}
Description: ""
Erl: 0
HelpContext: 0
HelpFile: ""
LastDllError: 183
Number: 0
Source: ""
>
まゆりん
ぬし
会議室デビュー日: 2002/08/12
投稿数: 539
お住まい・勤務地: よこはま
投稿日時: 2004-10-01 10:41
例外の内容って、エラーメッセージのことでは?
#ex.Messageだったかな。
NEKO
常連さん
会議室デビュー日: 2004/08/27
投稿数: 21
投稿日時: 2004-10-01 11:08
どうもありがとうございます。

Catch ex As Exception
MsgBox(ex.Message) <-----追加してみました。
Throw ex
Finally

<メッセージ>
タイムアウトに達しました。
操作が完了する前にタイムアウト期間が過ぎたか、
またはサーバが応答していません。

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