Desde que haja uma interface de ODBC para a fonte de dados, é possível configurar um conector do SQL para arquivos de consulta. Para configurar o conector para a leitura de vários arquivos, é necessário usar os elementos de segmento no elemento ConnectionString. Para encontrar um exemplo, consulte a seção anterior que descreve o texto da conexão.
O conector do SQL trabalha com os arquivos da seguinte maneira:
Quando um driver ODBC de texto for usado, o formato do arquivo de texto será determinado pelo arquivo de informações do esquema (schema.ini). Esse arquivo de informações do esquema deve ser colocado no mesmo diretório que a fonte de dados de texto.
Arquivos Schema.ini são compostos de entradas, com cada entrada descrevendo a estrutura de um único arquivo de texto. A primeira linha em cada entrada é o nome do arquivo de origem de texto entre colchetes.
Quando o conector trabalha com arquivos que foram definidos usando caracteres curinga, o nome do arquivo muda constantemente. Como o nome no arquivo schema.ini não pode conter caracteres curinga, o conector deve alterar o arquivo schema.ini antes de se conectar ao banco de dados.
Por isso, é necessário adicionar uma linha indicadora antes da linha de entrada do arquivo. Essa linha indicadora contém o padrão de nome do elemento de texto da conexão no arquivo de configuração do conector, entre colchetes. O conector substitui a próxima linha pelo novo nome do arquivo entre colchetes.
Observação: o arquivo schema.ini pode conter várias entradas. É sua responsabilidade adicionar as linhas no local correto.
[sqltes*.txt] [sqltest2.txt] ColNameHeader = False CharacterSet = ANSI Format = TabDelimited Col1=id Char Width 30 Col2=idname Char Width 30 ---------------------------------------- [report_200*.txt] [report_2003_09.txt] ColNameHeader = False CharacterSet = ANSI Format = TabDelimited Col1=date Char Width 30 Col2=service Char Width 30 Col3=responseTime Char Width 30 ----------------------------------------
Para cada consulta, o arquivo de controle da fonte de dados contém o padrão de nome do arquivo e o nome do arquivo de entrada atual para continuar com o mesmo arquivo quando o conector for reiniciado.
A seguir, há um exemplo do arquivo de controle no formato XML:
<AdapterControl Save="end" LastSaveTime="2005/03/23 09:16:15">
<Data>
<QueryCollection>
<Query QueryName="TroubleTickets (on D:\Data\Incidents*.xls)">
<KeyField Name="INC_CLOSE_DATE">
<LastValue>7/03/2005 13:06:21</LastValue>
</KeyField>
<LastFileName>IncidentsMarch.xls</LastFileName>
</Query>
</QueryCollection>
</Data>
Quando o conector termina de ler o arquivo atual, pesquisa pelo próximo. O próximo arquivo lido é o primeiro arquivo que atende ao padrão de nome e cujo nome é maior (em ordem lexicográfica) do que o nome do arquivo anterior. O conector não retorna para arquivos anteriores, mesmo que novos registros sejam adicionados a eles.
O conector usa o atributo InitialFileName apenas quando esses dois atributos são iguais a "não", e o arquivo de controle não contém o nome do último arquivo.
O conector verifica o texto da conexão e a consulta apenas se o arquivo definido existir. Se for definido usando caracteres curinga, o conector verificará apenas em relação ao primeiro arquivo.
Erros podem ocorrer quando o conector tentar ler de um novo arquivo. Nesse caso, o conector será interrompido imediatamente se o atributo crítico for igual a "sim". Se for igual a "não", o conector não continuará a executar essa consulta, mas continuará com as outras consultas. Como alternativa, o conector deixa o arquivo atual e passa para o próximo arquivo.
Há duas variáveis internas que podem ser usadas no arquivo de configuração para se referir ao contexto atual do nome do arquivo. Elas são: file_name e :file_name_no_ext, que se referem ao nome do arquivo atual e ao nome do arquivo atual menos a extensão do arquivo, respectivamente.
Essas variáveis podem ser usadas no elemento SelectStatemen e no atributo SelectInitialValues QueryKeyField\Function.
O conector substitui a variável pelo nome do arquivo nas consultas.
Por exemplo:
| Copyright © 2012 CA. Todos os direitos reservados. | Enviar email à CA Technologies sobre este tópico |