Soit une base de données MS Access (.mdb) contenant la table suivante :

La seule différence entre les fichiers de configuration de l'adaptateur SQL et de l'adaptateur de fichier réside dans la section DatasourceInterface.
La section DatasourceInterface d'un adaptateur de fichier stocke la collection Files, dans laquelle le fichier de l'adaptateur SQL contient ConnectionString et QueryCollection.
La différence principale entre les deux fichiers de configuration réside dans la méthode d'extraction et d'analyse, le reste des fichiers est identique.
L'interface SQL définit la connexion à la base de données et les requêtes utilisées pour récupérer les données.
Les détails sont les suivants :
Remarque : La section est définie d'après la base de données de la source de données susmentionnée.
ConnectionString : Chaîne de connexion pour l'accès à la source de la base de données.
Vous pouvez définir ConnectionString dans l'élément DataSourceInterface et/ou dans les éléments de la requête. La définition de ConnectionString dans l'élément DataSourceInterface est la définition par défaut, et elle est utilisée uniquement dans une requête sans définition de ConnectionString. Cela permet à l'adaptateur se connecter à plusieurs bases de données dans lesquelles chaque requête peut avoir sa propre chaîne de connexion. Pour plus de détails sur le mécanisme de chaîne de connexion, consultez la section suivante.
Query : Spécifie les attributs de la requête.
Remarque : L'ordre des champs InputFormat doit correspondre à celui des champs sélectionnés dans la requête.
Remarque : Vous devez entrer les champs clés de la requête comme premières valeurs sélectionnées dans l'instruction.
Remarque : Les champs Date nécessitent souvent d'utiliser des caractères spéciaux pour entourer la date elle-même. Les caractères nécessaires pour identifier le champ comme champ de date dépendent de la source de données. Vous pouvez utiliser le caractère #, comme dans l'illustration en début de cette section, pour encadrer le champ de cette valeur dans Excel. Toutefois, d'autres sources de données peuvent nécessiter des méthodes différentes. Pour plus informations, consultez la section Spécifications de configuration de l'adaptateur.
Exemple de requête (ODBC basé sur Excel) créée avec 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
Cette instruction SELECT doit pouvoir être exécutée sur la base de données cible vers laquelle la requête s'exécute. Elle peut différer en fonction des sources et des pilotes ODBC utilisés pour s'y connecter. Par exemple, dans Oracle il est possible de sélectionner les valeurs dans la table spéciale "dual" (select 'aaa', '1-jan-1970' from dual), mais dans Excel vous pouvez simplement sélectionner les valeurs directement, sans table. (select 'aaa')
Voici un fichier de configuration complet en 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.
Tous droits réservés.
|
|