データ ソースと接続する ODBC インターフェースがあば、SQL アダプタを設定してファイルのクエリを行うことができます。 アダプタを複数のファイルを読み取るように設定するには、ConnectionString エレメントの Segment エレメントを使用する必要があります。 例については、接続文字列について説明している前のセクションを参照してください。
SQL アダプタがファイルを処理する方法については以下のとおりです。
テキスト ODBC ドライバが展開される場合、スキーマ情報ファイル(schema.ini)によってテキスト ファイルの形式が決定されます。 このスキーマ情報ファイルはテキスト データ ソースと同じディレクトリ内に配置する必要があります。
Schema.ini ファイルは複数のエントリで構成され、各エントリは単一のテキスト ファイルの構造を説明しています。 各エントリの先頭行は、角かっこで囲まれたテキスト ソース ファイルの名前です。
アダプタがワイルドカードを使用して定義されたファイルを処理する際、ファイル名は絶えず変更されます。 schema.ini ファイル内の名前にはワイルドカードを含めることができないため、アダプタはデータベースに接続する前に schema.ini ファイルを変更する必要があります。
そのため、ユーザはファイル エントリ行の前にインジケータ行を追加する必要があります。 このインジケータ行には、角かっこで囲まれた、アダプタ設定ファイルの接続文字列エレメントの名前パターンが含まれます。 アダプタは、次の行を角かっこで囲んだ新規ファイル名で置き換えます。
注: schema.ini ファイルには複数のエントリを格納できます。 ユーザの責任で正しい位置に行(複数)を追加してください。
[sqltes*.txt] [sqltest2.txt] ColNameHeader = False CharacterSet = ANSI Format = TabDelimited Col1=id Char Width 30 Col2=idname Char Width 30 ---------------------------------------- [report_200*.txt] [report_2003_09.txt] ColNameHeader = False CharacterSet = ANSI Format = TabDelimited Col1=date Char Width 30 Col2=service Char Width 30 Col3=responseTime Char Width 30 ----------------------------------------
各クエリのデータ ソース制御ファイルには、ファイル名のパターンおよびアダプタが再起動する際に同じファイルから続行するための現在の入力ファイルの名前が格納されます。
XML 形式での制御ファイルの例を以下に示します。
<AdapterControl Save="end" LastSaveTime="2005/03/23 09:16:15">
<Data>
<QueryCollection>
<Query QueryName="TroubleTickets (on D:\Data\Incidents*.xls)">
<KeyField Name="INC_CLOSE_DATE">
<LastValue>7/03/2005 13:06:21</LastValue>
</KeyField>
<LastFileName>IncidentsMarch.xls</LastFileName>
</Query>
</QueryCollection>
</Data>
アダプタは、現在のファイルの読み取りを完了すると、次のファイルを検索します。 次のファイルの読み取りは、名前パターンおよびファイル名が前のファイルより大きい(辞書式順序で)という条件に当てはまった最初のファイルに対して行われます。 新規レコードが追加されても、アダプタは前のファイルに戻りません。
これらの 2 つの属性が「no」であり、制御ファイルに最後のファイル名が含まれていない場合に限り、アダプタは InitialFileName 属性を使用します。
アダプタは、定義ファイルが存在する場合のみ、接続文字列およびクエリを確認します。 これらがワイルドカードを使用して定義されている場合、アダプタは最初のファイルに対してのみ確認を行います。
アダプタが新規ファイルから読み取りを行おうとすると、エラーが発生します。 この場合、クリティカル属性が「yes」のときはアダプタがただちに停止します。 「no」のときは、アダプタはこのクエリの実行を止めますが、ほかのクエリを続行します。 または、アダプタ現在のファイルを保持して次のファイルへ移動します。
ファイル名の現在のコンテキストを参照するために設定ファイル内に使用できる 2 つの内部変数があります。 これらの内部変数は :file_name と :file_name_no_ext で、それぞれ現在のファイル名と、現在のファイル名からファイルの拡張子を除いた参照しています。
これらの変数は SelectStatement 要素、SelectInitialValues 要素、および QueryKeyField\Function 属性内で使用できます。
アダプタは、変数をクエリ内のファイル名に置換します。
例:
| Copyright © 2012 CA. All rights reserved. | このトピックについて CA Technologies に電子メールを送信する |