- PR -

「System.Data.OleDb.OleDbException: 不明」の件

1
投稿者投稿内容
David Lau
会議室デビュー日: 2007/05/09
投稿数: 1
投稿日時: 2007-05-09 17:04
お疲れ様です。

いま、Windows Formsアプリの開発はしています。お客様からのフィードバックですが、
アプリがエラーは発生してしまいました。
こちのPCでアプリがうまく動きましたが、お客様のPCは何でエラーが発生しますか?
いろいろ調査しましたが、まだ原因はわからないです。
皆さんは、誰か教えていただきませんか?

■環境:
・Win2000 SP4
・.NET framework 1.1
・DBはMicrosoft Access 2000
・開発ツール:VB.NET 2003
・MS Office 2000(MS Accessも含める)
・MDACバージョン:MDAC 2.8 SP1をインストールしました
 HKEY_LOCAL_MACHINE\\Software\\Microsoft\\DataAccess\\FullInstallVer = 2.81.1128.0
 HKEY_LOCAL_MACHINE\\Software\\Microsoft\\DataAccess\\Version = 2.81.1117.6
・Micorosoft JET Engineバージョン:4.00.9025.0

■エラー情報:
System.Data.OleDb.OleDbException: 不明
at System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(Int32 hr)
at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
at System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior)
at System.Data.OleDb.OleDbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.FillFromCommand(Object data, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.Fill(DataTable dataTable, IDbCommand command, CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.Fill(DataTable dataTable)
at MIGRATE.ADP.RunSqlFillDataTbl(String strSql, DataTable& dtTbl)

SQLとエラーコードなどの情報も取得しました:
[Error Code = -2147217900]
[Index = 0]
[Message = 不明]
[Native Error = -524553244]
[Source = Microsoft JET Database Engine]
[SQL State = 3075]

SQLは、下記になります:
SELECT MID(CHUKAKU_CITY_CD,1,2) AS CODE,
MID(CHUKAKU_CITY_CD,1,2) & '.' & CHUKAKU_CITY_NAME AS NAME
FROM G_CHUKAKU_CITY
WHERE START_DT < FORMAT(DATE(),'YYYYMMDD')
AND END_DT > FORMAT(DATE(),'YYYYMMDD')
AND DEL_FLG = '0'
AND MID(CHUKAKU_CITY_CD,3) = '0000'
ORDER BY CHUKAKU_CITY_CD

ログを見て、MDBファイルとの接続が成功にできましたが、その後のSelect SQLを実行するとき、
上記のエラーは発生します。また、そのエラーが再現できます。

■SQLテスト結果
原因を探知するには、下記のSQLが実行できるかテストしました。
結果が下記となります:

A: SELECT * FROM G_CHUKAKU_CITY
⇒実行結果:OK

B: SELECT * FROM G_CHUKAKU_CITY ORDER BY CHUKAKU_CITY_CD
⇒実行結果:NG。エラーは上記と同じ。

C: SELECT *
  FROM G_CHUKAKU_CITY
  WHERE START_DT < FORMAT(DATE(),'YYYYMMDD')
AND END_DT > FORMAT(DATE(),'YYYYMMDD')
AND DEL_FLG = '0'
AND MID(CHUKAKU_CITY_CD,3) = '0000'
⇒実行結果:NG。エラーは上記と同じ。

D: SELECT MID(CHUKAKU_CITY_CD,1,2) AS CODE,
MID(CHUKAKU_CITY_CD,1,2) & '.' & CHUKAKU_CITY_NAME AS NAME
FROM G_CHUKAKU_CITY
⇒実行結果:NG。エラーは上記と同じ。

Aは、一番簡単なSQLですが、実行できました。
B〜Dはどうして実行できませんか?
おかしいと思います。

■参照
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=1468470&SiteID=7&mode=1

以上

David Lau
ひろれい
ぬし
会議室デビュー日: 2006/03/02
投稿数: 486
お住まい・勤務地: 万博開催地
投稿日時: 2007-05-09 17:22
参考までに。

エラーコードで検索したら、VB実行時エラーというページが引っかかりました。

VB6 の実行時エラーコードなので、同じではないかもしれませんが。

SELECT CHUKAKU_CITY_CD FROM G_CHUKAKU_CITY
は、OKでしょうか?
ぽぴ王子
ぬし
会議室デビュー日: 2006/03/24
投稿数: 475
お住まい・勤務地: お住まい:城・勤務地:城
投稿日時: 2007-05-09 17:37
名前などから日本語圏の方ではなく、あまり日本語も達者ではないと推測
しますが、一言だけ。

MSDN フォーラムで話が進んでいる内容を @IT に持ち込むのはやめてください。

先日も「マイクロソフトに遠慮があるかもしれない」とか言ってこちらにマル
チポストをした方がいらっしゃいましたが、個人的にはそういった行為(今回
のものを含む)はあまり好きではありません。
ましてや、この問題は MSDN フォーラムで魔界の仮面弁士さんが回答し
てくださっている途中のようですし、それを無視して @IT に話を持ち込む
のは、魔界の仮面弁士さんに対してとても失礼なことだと思います。

追記:
気になった部分は MSDN フォーラムの方に書いておきました。

[ メッセージ編集済み 編集者: ぽぴ王子 編集日時 2007-05-09 17:48 ]
1

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