Supongamos que tenemos una base de datos de MS Access (.mdb) con la tabla siguiente:

La única diferencia en el archivo de configuración entre un archivo de configuración de adaptador de SQL y un archivo de configuración de adaptador de archivos es la sección DatasourceInterface.
La sección DatasourceInterface en el adaptador de archivos almacena la recolección de archivos, mientras que el archivo del adaptador de SQL incluye ConnectionString y QueryCollection.
La diferencia principal entre los dos archivos de configuración reside en el método de recuperación y análisis. El resto del archivo es igual.
La interfaz de SQL define la conexión con la base de datos y las consultas que se utilizan para recuperar los datos.
Los detalles son los siguientes:
Nota: La definición de la sección se basa en la base de datos de origen de datos anterior.
ConnectionString: cadena de conexión para acceder a la base de datos de origen.
ConnectionString se puede definir en el elemento DataSourceInterface y/o en los elementos Query. La definición de ConnectionString en el elemento DataSourceInterface es el valor predeterminado y se utiliza solamente en consultas donde no se ha definido ConnectionString. Esto permite al adaptador conectarse a varias bases de datos, donde cada consulta puede tener su propia cadena de conexión. Para obtener más información acerca del mecanismo de la cadena de conexión, consulte la sección siguiente.
Query: especifica los atributos de la consulta.
Nota: El orden de los campos InputFormat tiene que corresponder con el orden de los campos de consulta seleccionados.
Nota: Debe introducir los campos clave de la consulta como los primeros valores seleccionados en la declaración.
Nota: Los campos de fecha a menudo requieren utilizar caracteres especiales para encerrar la fecha en sí. Los caracteres necesarios para identificar el campo como un campo de fecha dependen del origen de datos. El carácter #, como muestra la ilustración al principio de la sección, se puede utilizar para envolver el campo de valor en Excel. Otros orígenes de datos, sin embargo, pueden requerir métodos diferentes. Consulte Especificaciones de configuración del adaptador para obtener más información.
Ejemplo de una consulta (ODBC basado en Excel) construida con AutoCompleteQuery="yes":
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
Esta declaración de selección debe ejecutarse en la base de datos de destino en la cual se está ejecutando la consulta. Esto puede variar entre los orígenes y los controladores ODBC que se utilizan para conectarse a ellos. Por ejemplo, en Oracle podría seleccionar los valores de la tabla especial dual (select 'aaa', '1-jan-1970' from dual), pero en Excel sólo se pueden seleccionar los valores directamente, sin una tabla. (select 'aaa')
A continuación se incluye un archivo de configuración completo en formato 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.
Todos los derechos reservados.
|
|