Vorheriges Thema: SQL-Adapter

Nächstes Thema: SQL-Adapter-Verbindungsstring

Beispiel einer SQL-Adapter-Konfigurationsdatei

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

Beispiel einer SQL-Adapter-Konfiguration

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.

Verbindungsstring-Element

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.

Abschnitt "Abfragesammlung" der Konfigurationsdatei

Query: Gibt die Abfrageattribute an.

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>