schema.iniの中身(CSVファイルをADOで扱う㉘)

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 文字セットを選択します。932Shift-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 TABLECSVファイルを追加作成すると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

CSVファイルをADOで扱う連載記事はコチラからどうぞ