Gezeigt wird eine MS Access-Datenbank (.mdb) mit folgender Tabelle:

Die SQL-Adapter-Konfigurationsdatei und die Dateiadapter-Konfigurationsdatei unterscheiden sich nur im Abschnitt DatasourceInterface.
Im Abschnitt DatasourceInterface des Dateiadapters wird die Dateien-Sammlung gespeichert, wohingegen bei einer SQL-Adapter-Datei die Optionen "ConnectionString" und "QueryCollection" verwendet werden.
Der Hauptunterschied zwischen den beiden Konfigurationsdateien liegt in der Abfrage- und Parsing-Methode. Der Rest der Datei ist identisch.
Die SQL-Schnittstelle legt die Verbindung zur Datenbank und die Abfragen, die zum Abrufen der Daten verwendet werden, fest.
Details:
Hinweis: Der Abschnitt wird basierend auf der obigen Datenquellen-Datenbank festgelegt.
ConnectionString: Verbindungsstring, mit der auf die Quellendatenbank zugegriffen werden kann.
Der ConnectionString kann im DataSourceInterface-Element und/oder in den Abfrage-Elementen festgelegt werden. Die ConnectionString-Definition wird standardmäßig im DataSourceInterface-Element festgelegt und wird nur bei einer Abfrage ohne eine ConnectionString-Definition verwendet. Dies ermöglicht dem Adapter, eine Verbindung zu mehreren Datenbanken herzustellen, wobei jede Abfrage ihren eigenen Verbindungsstring haben kann. Weitere Details zum Mechanismus der Verbindungsstrings finden Sie im folgenden Abschnitt.
Query: Gibt die Abfrageattribute an.
Hinweis: Die Reihenfolge der InputFormat-Felder muss der Reihenfolge der für die Abfrage ausgewählten Felder entsprechen.
Hinweis: Sie müssen die Abfrageschlüsselfelder als erste ausgewählte Werte in der Anweisung eingeben.
Hinweis: Für die Felder "Datum" sind häufig Sonderzeichen notwendig, um das Datum selbst einzuschließen. Die Zeichen, die zur Identifizierung des Felds als ein Datumsfeld erforderlich sind, hängen von der Datenquelle ab. Das Zeichen # (siehe Abbildung am Anfang des Abschnitts) kann verwendet werden, um das Wertfeld in Excel zu umschließen. Andere Datenquellen können jedoch andere Methoden erfordern. Weitere Informationen finden Sie unter Adapterkonfigurations-Spezifikationen.
Beispiel einer Abfrage (Excel-basierter ODBC), bei der AutoCompleteQuery="yes" ist:
SELECT INC_CLOSE_DATE, INCIDENT_REF, Severity, `Resolve Time`, `Date Logged`, `Date Resolved` FROM `AllCalls$` WHERE INC_CLOSE_DATE>CDate('03.07.05 13:06:21') order by INC_CLOSE_DATE
Diese ausgewählte Anweisung muss in der Zieldatenbank ausgeführt werden können, in der die Abfrage durchgeführt wird. Dies kann zwischen den Quellen und den ODBC-Treibern, die zur Herstellung einer Verbindung zu den Quellen verwendet werden, unterschiedlich sein. In Oracle können Sie beispielsweise die Werte aus einer speziellen "Dual"-Tabelle auswählen (select 'aaa', '1-jan-1970' from dual), in Excel hingegen können Sie die Werte nur direkt - ohne Tabelle - auswählen. (select 'aaa')
Nachfolgend ist eine vollständige Konfigurationsdatei im XML-Format dargestellt:
<?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','01.01.70'
</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 © 2012 CA. Alle Rechte vorbehalten. | Senden Sie CA Technologies eine E-Mail zu diesem Thema. |