Specificato un database di Microsoft Access (.mdb) con la seguente tabella:

L'unica differenza tra il file di configurazione dell'adapter SQL e il file di configurazione dell'adapter per file è la sezione DataSourceInterface.
La sezione DataSourceInterface in un adapter per file memorizza l'insieme dei file, mentre il file dell'adapter SQL presenta gli elementi ConnectionString e QueryCollection.
La principale differenza tra i due file di configurazione è il metodo di recupero e di analisi. Il resto del file è identico.
L'interfaccia SQL definisce la connessione al database e le query utilizzate per recuperare i dati.
Di seguito sono riportati i dettagli:
Nota: la sezione è definita secondo il database dell'origine dati precedente.
ConnectionString: stringa di connessione per l'accesso al database di origine.
ConnectionString può essere definito nell'elemento DataSourceInterface e/o negli elementi Query. La definizione ConnectionString nell'elemento DataSourceInterface è l'impostazione predefinita e viene utilizzata solo in una query senza la definizione ConnectionString. In questo modo all'adapter viene consentita la connessione a più database in cui ogni query può disporre della propria stringa di connessione. Per ulteriori informazioni sul meccanismo della stringa di connessione, consultare la sezione seguente.
Query: indica gli attributi della query.
Nota: l'ordine dei campi InputFormat deve corrispondere all'ordine dei campi selezionati di query.
Nota: è necessario immettere i campi chiave della query come primi valori selezionati nell'istruzione.
Nota: spesso i campi di data richiedono l'utilizzo di caratteri speciali per racchiudere la data stessa. I caratteri necessari per identificare il campo come un campo di data dipendono dall'origine dati. Il carattere #, come mostrato nella figura all'inizio della sezione, può essere utilizzato per racchiudere il campo valore in Excel. Un'altra origine dati, tuttavia, può richiedere metodi diversi. Per ulteriori informazioni, fare riferimento alla sezione Specifiche di configurazione dell'adapter.
Esempio di query (ODBC basato su Excel) creata 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
L'istruzione SELECT deve essere eseguibile sul database di destinazione in cui è in esecuzione la query. Potrebbero esserci differenze tra le origini e il driver ODBC utilizzato per la connessione. Ad esempio, in Oracle è possibile selezionare i valori dalla tabella speciale DUAL (select 'aaa', '1-jan-1970' da DUAL), ma in Excel è possibile solo selezionare i valori direttamente senza una tabella. (select 'aaa')
Di seguito viene riportato il layout completo di un file di configurazione 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 © 2012 CA. Tutti i diritti riservati. | Contatta CA Technologies |