以下のテーブルと MS Access(.mdb)データベースが与えられています。

SQL アダプタの設定ファイルとファイル アダプタの設定ファイルの違いは、DatasourceInterface セクションのみです。
ファイル アダプタの DatasourceInterface セクションはファイル コレクションを格納しますが、SQL アダプタ ファイルには ConnectionString と QueryCollection があります。
2 つの設定ファイルの主な違いは、取得と解析メソッドにあります。 その他は同じです。
SQL インターフェースは、データベースへの接続、およびデータの取得に使用されるクエリを定義します。
詳細については以下のとおりです。
注: このセクションでは、上記のデータ ソース データベースに基づいて定義します。
ConnectionString: ソース データベースにアクセスするための接続文字列。
ConnectionString は DataSourceInterface エレメントおよび(または)Query エレメントに定義できます。 DataSourceInterface エレメントの ConnectionString 定義はデフォルトであり、ConnectionString 定義がないクエリにのみ使用されます。 これにより、各クエリが独自の接続文字列を持つことができ、アダプタは複数のデータベースに接続することができます。 接続文字列のメカニズムの詳細については、以下のセクションを参照してください。
Query: クエリ属性を指定します。
注: InputFormat フィールドの順序は、クエリで選択されたフィールドの順序に対応する必要があります。
注: ステートメントで最初に選択された値としてクエリ キー フィールドに入力する必要があります。
注: 「Date」フィールドには、日付自体を囲むために特殊文字を使用します。 データ ソースによっては、フィールドが日付フィールドであることを認識するためにこの文字が必要になります。 このセクションの最初に図に示したように、# 文字は Excel の値フィールドのラップに使用できます。 ただし、ほかのデータ ソースには別の方法が必要になります。 詳細については、「Adapter Configuration Specifications」を参照してください。
AutoCompleteQuery="yes" のときに構築されるクエリ(Excel ベースの ODBC)の例は以下のとおりです。
SELECT INC_CLOSE_DATE, INCIDENT_REF, Severity, `Resolve Time`, `Date Logged`, `Date Resolved` FROM `AllCalls$` WHERE INC_CLOSE_DATE>CDate('7/03/2005 13:06:21') order by INC_CLOSE_DATE
この SELECT ステートメントは、クエリが実行されているターゲット DB 上で実行可能である必要があります。 これは、ソースと接続に使用する ODBC ドライバ間で異なる可能性があります。 たとえば、Oracle では特殊な「dual」テーブルから値を選択(「aaa」および「1-jan-1970」を dual から選択する)することができますが、Excel ではテーブルを使用せずに直接値を選択します。 (「aaa」を選択)
以下は XML レイアウトの完全な設定ファイルです。
<?xml version="1.0" encoding="utf-8"?>
<AdapterConfiguration>
<General MajorVersion="3" MinorVersion="0" RunOnce="yes" LogDebugMode="yes" ConsoleDebugMode="yes" WorkingDirectoryName="d:¥Oblicore¥Training Kit¥Exercises¥Adapters¥SQL Adapters¥Ex1¥Solution">
<DataSourceDifferenceFromUTC DefaultOffset="1" TimeFormat="%Y/%m/%d-%H:%M:%S"/>
</General>
<OblicoreInterface Mode="online">
<OnlineInterface Port="2000" SecurityLevel="none"/>
</OblicoreInterface>
<DataSourceInterface>
<ConnectionString>
Driver={Microsoft Access Driver (*.mdb)};Dbq=d:¥Oblicore¥Training Kit¥Exercises¥Adapters¥SQL Adapters¥Ex1¥db1.mdb;
</ConnectionString>
<QueryCollection>
<Query QueryName="Query" InputFormat="InputFormat" SleepTime="5">
<SelectStatement AutoCompleteQuery="yes">
select time,server,availability from t_availability
</SelectStatement>
<QueryKeyFields>
<KeyField Name="time" Sort="asc" ValueLeftWrapper="#" ValueRightWrapper="#"/>
<KeyField Name="server" Sort="asc"/>
<SelectInitialValues>
select 'AAA','1/1/1970'
</SelectInitialValues>
</QueryKeyFields>
</Query>
</QueryCollection>
</DataSourceInterface>
<InputFormatCollection>
<InputFormat InputFormatName="InputFormat">
<InputFormatFields>
<InputFormatField Name="timestamp" Type="time" TimeFormat="%m/%d/%Y %I:%M:%S %p"/>
<InputFormatField Name="server" Type="string"/>
<InputFormatField Name="status" Type="integer"/>
</InputFormatFields>
<TranslatorSwitch DefaultTranslator="Translator"/>
</InputFormat>
</InputFormatCollection>
<TranslatorCollection>
<Translator TranslatorName="Translator">
<TranslatorFields>
<TranslatorField Name="ResourceId" SourceType="table" SourceName="ResourceTable"/>
<TranslatorField Name="EventTypeId" SourceType="constant" ConstantValue="1500"/>
<TranslatorField Name="Timestamp" SourceType="field" SourceName="timestamp"/>
<TranslatorField Name="Value" SourceType="field" SourceName="status"/>
</TranslatorFields>
</Translator>
</TranslatorCollection>
<TranslationTableCollection LoadingMode="remote">
<TranslationTable Name="ResourceTable" DestinationType="resource">
<TranslationField>server</TranslationField>
</TranslationTable>
</TranslationTableCollection>
</AdapterConfiguration>
|
Copyright © 2013 CA.
All rights reserved.
|
|