CSVファイルをADOで扱う連載の28回目です。前回の記事はこちらになります。 hirocom777.hatenadiary.org
schema.iniを追求する
前回はADOを使ってCSVファイルを作った際に一緒にできたファイルschema.iniの機能についてご紹介しました。
もっともまだ一部分だけです。今回も引き続き、このschema.iniに迫ってみたいと思います。
schema.iniで設定すること
さて、改めて今回作成されたschema.iniの内容を見てみましょう。今回は、ここに記述されている内容の詳細をご説明します。
[Test.csv] ColNameHeader=True CharacterSet=932 Format=CSVDelimited Col1=日付 Date Col2=品名 LongChar Attribute 32 Col3=価格 Integer
1行目は今回作成したCSVファイルのファイル名ですね。以降は次の様に続きます。
ColNameHeader Trueを指定すると先頭行でフィールド名を指定します。ここはTrue固定でいいと思います。
CharacterSet 文字セットを選択します。932はShift-JISを意味します。UTF-8を指定する場合は65001と記述します。(参考:コードページ識別子 - Win32 apps | Microsoft Docs)
Format ファイル書式を指定します。CSVDelimitedだとコンマで区切った形(CSVファイル)になります。ここをTabDelimitedとするとTABで区切った形(TSVファイル)になります。
ここまではファイル全体の仕様についての記述です。以降は各フィールドの設定(具体的にはデータ型の指定)です。記述方法は以下の通りです。
Col列番号=フィールド名 データ型 ・ ・ ・
今回は1列目を日付時間型、2列目を文字列型、3列目を整数型に指定しています。
データ型は色々な指定方法がありますが、以下に代表的な指定方法をまとめておきます。
CREATE TABLEでの指定 | schema.iniの表記 | データ型 | サイズ |
---|---|---|---|
BYTE | Byte | バイト型 | 1バイト |
SMALLINT | Short | 整数型 | 2バイト |
INTEGER | Integer | 長整数型 | 4バイト |
SINGLE | Single | 浮動小数点型 | 4バイト |
FLOAT | Float | 倍精度浮動小数点型 | 8バイト |
MONEY | Currency | 通貨型 | 8バイト |
CHAR | Char Width 255 | 文字列型 | 255文字 |
TEXT | LongChar Attribute 32 | 文字列型 | 255文字 |
DATE | Date | 日付時間型 | 8バイト |
サイズについては読込んだ際に扱われるデータサイズです。文字列型については最大文字数を表示しています。
また、複数のCSVファイルを使う場合にはファイルごとに同じ書式の内容を既存のschema.iniに追加することになります。実際に依然ご紹介したCREATE TABLEでCSVファイルを追加作成するとschema.iniに情報が追加されます。以下のような感じになります。
[Test.csv] ColNameHeader=True CharacterSet=932 Format=CSVDelimited Col1=日付 Date Col2=品名 LongChar Attribute 32 Col3=価格 Integer [Test2.csv] ColNameHeader=True CharacterSet=932 Format=CSVDelimited Col1=名前 LongChar Attribute 32 Col2=生年月日 Date
逆に言えば
逆にCSVファイルと合致した書式のschema.iniが同じフォルダー内にあれば、ADOがそれらを認識して処理してくれるのです。ですので、テキストエディターを使ってこれらのファイルを作成、編集してからADOでアクセスが可能です。簡易データベースシステムのでき上がりです。
次回は挙動の確認
いかがでしょうか。次回は実際にschema.iniを作成した状態で、ADOによるCSVファイルアクセスの挙動を確認してみたいと思います。お楽しみに!! hirocom777.hatenadiary.org