上一主题: SQL 适配器

下一主题: SQL 适配器连接字符串

SQL 适配器配置文件示例

假定一个 MS Access (.mdb) 数据库具有以下表:

SQL 适配器配置示例

SQL 适配器配置文件与文件适配器配置文件的唯一差别是 DatasourceInterface 部分。

文件适配器在 DatasourceInterface 部分存储文件集合,而 SQL 适配器的文件中包含 ConnectionString 和 QueryCollection。

这两种配置文件之间的主要差别在于检索和解析方法的不同。 文件的其余部分相同。

SQL 接口定义到数据库的连接和用于检索数据的查询。

详细信息如下所示:

注意:本部分是基于上面的数据源数据库定义的。

连接字符串元素

ConnectionString:用于访问源数据库的连接字符串。

可在 DataSourceInterface 元素和/或 Query 元素中定义 ConnectionString。 DataSourceInterface 元素中的 ConnectionString 定义是默认的,仅在没有 ConnectionString 定义的查询中使用。 这允许适配器连接到若干个数据库,其中每个查询可以有自己的连接字符串。 有关连接字符串机制的更多详细信息,请参阅以下部分。

配置文件的 QueryCollection 部分

Query:指定查询属性。

以下是 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','70-1-1'

               </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>