Pervasive.SQL テーブルに、LongVarChar
基本的に文字列データ用に設計された blob タイプ フィールドであるタイプのテーブルがあります。
このテーブルに対してを実行するPsqlDataReader
と、リーダーがレポートするフィールド サイズは 65500IsLong
ですtrue
。
フィールド サイズが 65500 よりもはるかに大きいか、または -1 であると予想していました。
一般的に行うのに十分なレベルでこれを制御できますか? のように、私が読んでいるテーブルやそれに含まれるフィールドについて何も知らずに? フィールドが巨大であることを自動的に認識し、適切に大きなサイズを設定するように指示する方法はありますか?
スキーマを取得し、フィールド サイズを 65500 から 65500 にリセットしInt32.MaxValue
、リーダーからデータをロードすることで、必要な結果を手動でテストしたことに注意してください。65500 では、制約例外が発生します。ではInt32.MaxValue
、私はしません。
Pervasive のドキュメントにある追加情報:
SQLGetData の 1 回の呼び出しで、LONGVARCHAR または LONGVARBINARY 列に対して Pervasive PSQL によって返される最大文字数は 65500 です。65500 文字を超える列データを取得するには、SQLGetData を複数回呼び出す必要があります。
PsqlDataReader
これが、 が 65500 のサイズになっている理由を説明しているようです。しかし...その制限が私の能力に与える影響についてどうしたらよいかまだわかりませんDataTable.Load(reader)
. ところで、完全なフィールド データをフェッチします。間違っているのはスキーマのフェッチだけだと思います。