- PR -

C# Ado.netでの更新系OleDbCommandのNonQuery発行時の文字長制限について教えてください

1
投稿者投稿内容
katudon
会議室デビュー日: 2007/04/26
投稿数: 13
投稿日時: 2007-04-26 18:58
お世話になっております。
ADO.NETにて Accessのメモ型セルに対し、8000バイト超のデータを扱おうとしております。
この際、OleCommandにて、InsertNonQuery,UpdateNonQueryを用いて、データのアップデートを行うと、「クエリ式の誤りです」とエラーが返ります。
8000バイト超のデータの取り扱いのご指摘は別として、OleDbCommandでのクエリーデータは文字数の制限があるのでしょうか。
Accessでも、同一クエリーで同様のエラーが発生しますので、仕様であることは認識しましたが、メモ型としては、65532バイトまで許容できるはずです。

ADO.netなどの制限により、8000バイト近辺の制限があると考えたほうがよろしいでしょうか。現在メモ型に8000バイト超のデータを登録する術が見当たっておりません。

初歩的な質問で申し訳ありませんが、ごなたかご教唆いただきますようお願いいたします。
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2007-04-27 09:25
引用:

katudonさんの書き込み (2007-04-26 18:58) より:

Accessでも、同一クエリーで同様のエラーが発生しますので、仕様であることは認識しましたが、メモ型としては、65532バイトまで許容できるはずです。


そのものずばりな知識はないのですが、もしかしたら、クエリー文字列のサイズの制限という可能性もあるかもしれません。
他の部分を削って、8000バイトを超える処理できるか、また、他の部分を増やすと、8000バイト未満でもエラーが発生するようになるのかを確認することで判断できるかと思います。

#差し障りがなければ教えていただきたいのですが、8000バイトを超えるデータというのは文章か何かですか?

_________________
R・田中一郎 -  R.Tanaka.Ichiro’s Blog
katudon
会議室デビュー日: 2007/04/26
投稿数: 13
投稿日時: 2007-04-27 15:42
お世話になっております。
R・田中一郎様
ご教唆ありがとうございます。
ご指導いただいた8000バイト前後で調査したところ、データの中に区切り文字が入っており、これが原因でエラーを起こしていたことが判明しました。
お騒がせいたしました。
とりあえずAccessのクエリ上は通りましたので、.netでトライ後再度ご報告差し上げます。
ちなみに長文データそのものをDBに登録しようという試みです。
現在の調査対象のデータはXML形式です。OLEで、区切り文字、制御文字なども含めて問題なく登録できるのか調査を行っておりました。調査結果については、再報告いたします。
katudon
会議室デビュー日: 2007/04/26
投稿数: 13
投稿日時: 2007-04-27 22:20
お世話になっております。
R・田中一郎様
InsertNonQuery,UpdateNonQueryとも正常動作いたしました。
お騒がせいたしました。
引用:
--------------------------------------------------------------------------------

他の部分を削って、8000バイトを超える処理できるか、また、他の部分を増やすと、8000バイト未満でもエラーが発生するようになるのかを確認することで判断できるかと思います。
--------------------------------------------------------------------------------
こちらのアドバイス再度調査していたときに判明しました。ありがとうございます。
1

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