|
分類:[C#]
>>> 1フィールドに対して256文字以上の文字列を格納しようとしたところ、 >>> 255文字で切れてしまいます。 >> Textだと255文字になっちゃいますね。Memoを使うようにしましょう。
Jet 4.0 の場合、固定長/可変長テキスト型は最大255文字まで、 メモ型は、最大536,870,910 文字までという制限があります。
Text I-ISAM モードや、Text ODBC Driver 経由での操作に関しても、 これと同様の縛りが生じます。
たとえば Microsoft Access で、CSV にリンクテーブルを貼る場合で言えば、 テキストリンクウィザードの[設定]ボタンから、リンク定義として 『テキスト型』が指定された場合と、『メモ型』が指定されていた場合とで、 文字列の上限値が異なる仕様になっています。
> この「Memo」を使うというのは、 > "Extended Properties=""Memo;HDR=YES;FMT=Delimited""" > このような使い方をするということでしょうか?
Extended Properties パラメータでは指定できません。 Text I-ISAM の場合、フィールドの型定義は、CSV ファイルと同じフォルダに対して、 schema.ini というファイルを配置することによって行われます。たとえばその内容は、
[sample.csv] ColNameHeader=False Format=CSVDelimited CharacterSet=OEM Col1=F1 Integer Col2=F2 LongChar Col3=F3 Char
のような内容となります。 (詳細は、Jetデータベースエンジン プログラマーズ ガイド などを参照の事)
> Accessに256文字以上格納できないのではなくて、
ちなみに、Microsoft Access のユーザーインターフェイス経由では、 65,535 文字上限となったりしますね。
> DataSetにデータを格納する際に、既に255文字で切られてしまっているのです。
DataTable 側で、そのフィールドの最大長は幾つに設定されていますか?
|