Access
 sql >> Base de Dados >  >> RDS >> Access

Parâmetros de cadeia de conexão para Schema.ini

Parâmetros de string de conexão para Schema.ini




Fazendo um schema.ini abrir ou vincular arquivos de texto do Access é um dos dois métodos possíveis que podem ser usados ​​para trabalhar com dados contidos nos arquivos do Access. No artigo anterior, analisamos os parâmetros da cadeia de conexão do arquivo de texto. Também discutimos a necessidade de ter informações de esquema adicionais para ajudar o Access a analisar os arquivos de texto. A Microsoft tem uma página sobre o schema.ini , mas há algumas coisas que não ficam imediatamente claras, então vamos cobri-las aqui.

schema.ini arquivo


Cada pasta pode ter um único arquivo chamado schema.ini para onde podemos definir todos os formatos possíveis de arquivos de texto que esperamos encontrar dentro da pasta. Para cada arquivo de texto, precisamos iniciar uma seção com o nome do arquivo e depois descrever a estrutura. Começaremos com uma seção de amostra mínima e analisaremos cada parte. Não é necessário enumerar todos os arquivos de texto. Qualquer arquivo de texto não descrito pelo schema.ini será simplesmente tratado usando a configuração padrão para melhor ou pior. Vejamos a estrutura do schema.ini .
[products.txt]

Format=CSVDelimited
ColNameHeader=True
MaxScanRows=0

Col1=Products Text
Col2=Count Long

Observe que a primeira linha para iniciar uma seção deve fazer referência a um arquivo de texto. Ele também deve ter colchetes para indicar um início de seção. Como você já deve saber, um schema.ini pode descrever mais de um arquivo de texto, portanto, a linha entre colchetes ajuda a manter o esquema de cada arquivo de texto separado.

O próximo conjunto de linhas lida com o formato geral do arquivo e como o Access deve processar os arquivos de texto. Podemos indicar se um arquivo de texto possui cabeçalhos, quantas linhas examinar, qual página de código usar e assim por diante.

O último conjunto de linhas descreve as colunas individuais, seu nome, tipo de dados e largura.

Analisaremos as opções válidas e os valores possíveis para esses 2 conjuntos.

Opções para descrever a estrutura geral do arquivo de texto


Você verá uma lista de opções válidas disponíveis para descrever o formato geral do arquivo de texto. É típico especificar no mínimo o Format e ColNameHeader mas todos os conteúdos possíveis são opcionais. Sempre que forem omitidos, serão utilizados os valores padrão conforme indicado abaixo. Vejamos como podemos descrever o formato de um determinado arquivo de texto.

Opções gerais de estrutura


Como observado, esses são opcionais, embora raramente omitidos. No entanto, os padrões vêm das chaves de registro do mecanismo de texto. Mais detalhes sobre as chaves do registro podem ser encontrados aqui.
  • Format :Indica o formato dos arquivos de texto. Se omitido, usa a chave de registro do mecanismo de texto, Format . Os valores válidos são:
    • TabDelimited :as guias delimitam as colunas.
    • CSVDelimited :vírgulas delimitam as colunas como um arquivo CSV.
    • Delimited(*) :Um único caractere delimita as colunas. Pode ser qualquer caractere exceto o " personagem. Por exemplo, um arquivo de texto delimitado com | caractere deve reportar Format=Delimited(|) .
    • FixedLength :As colunas são de comprimento fixo; o conteúdo deve ser preenchido em conformidade. Todas as colunas devem ter uma largura definida.

  • CharacterSet :usa uma página de código específica para ler o arquivo de texto. Os valores possíveis podem ser ANSI , OEM , Unicode ou quaisquer valores numéricos que representem as páginas de código desejadas. Para localizar todas as páginas de código possíveis com suporte em sua máquina Windows, procure na chave do Registro Computer\HKEY_CLASSES_ROOT\MIME\Database\Codepage\ . Por exemplo, se quiser usar a codificação utf-8, você pode especificar CharacterSet=65001 .
  • ColNameHeader :Indica se a primeira linha contém os nomes das colunas. Quando omitido, usa a chave de registro do mecanismo de texto, FirstRowHasNames . Os valores podem ser True ou False .
  • MaxScanRows :Número de linhas que o Access deve verificar em um arquivo de texto para adivinhar o tipo de dados possível. Se definido como 0, o Access verificará o arquivo inteiro. A chave de registro do mecanismo de texto MaxScanRows é usado quando omitido.

Opções de localização


Essas opções lidam principalmente com a localização dos dados codificados em datas, horas ou moeda. Todas essas opções são opcionais e sempre que omitidas, as configurações de região do Windows são usadas.
  • DateTimeFormat :o formato de data/hora a ser usado.
  • DecimalSymbol :qualquer caractere único usado como separador entre partes inteiras e fracionárias de um número.
  • NumberDigits :número de dígitos usados ​​na parte fracionária de um número.
  • NumberLeadingZeroes :indica se deve haver um zero à esquerda para números maiores que -1 e menores que 1. Deve ser True ou False .
  • CurrencySymbol :identifica o símbolo a ser interpretado como uma moeda.
  • CurrencyPosFormat :Descreve como os valores monetários devem ser informados no arquivo de texto. Existem quatro valores válidos a serem usados ​​para esta configuração representados pelo número de 0 a 3. Observe que o exemplo usa $ mas em uso real, ele usará o símbolo de moeda real definido por CurrencySymbol ou pela configuração do Windows.
    • 0 :prefixo sem espaço (por exemplo, $1)
    • 1 :Sufixo sem espaço (1$)
    • 2 :prefixo com um espaço entre ($ 1)
    • 3 :Sufixo com um espaço entre (1 $)

  • CurrencyDigits :número de dígitos em parte fracionária de um valor monetário.
  • CurrencyNegFormat :Indica a formatação de um valor monetário negativo. É um valor entre 0-15 como mostrado abaixo. Observe que o exemplo usa $ mas em uso real, ele usará o símbolo de moeda real definido por CurrencySymbol ou pela configuração do Windows.
    • 0 :($1)
    • 1 :-$1
    • 2 :$-1
    • 3 :$1-
    • 4 :(1$)
    • 5 :-$1
    • 6 :1-$
    • 7 :1$-
    • 8 :-1 $
    • 9 :-$ 1
    • 10 :1 $-
    • 11 :$ 1-
    • 12 :$ -1
    • 13 :1- $
    • 14 :($ 1)
    • 15 :(1 $)

  • CurrencyThousandSymbol :Um único caractere para indicar a separação de milhares em um valor monetário. Se omitido, a configuração do Windows é usada.
  • CurrencyDecimalSymbol :um único caractere para indicar o decimal de um valor monetário.

Opções de definição de coluna


Vimos como podemos lidar com o formato geral do arquivo, mas precisamos fornecer mais informações sobre a coluna individual. Mais importante, precisamos ser capazes de mapear os tipos de dados esperados das colunas. Portanto, a terceira seção do schema.ini deve descrever cada coluna, com tantas linhas quantas forem as colunas no arquivo de texto de destino. O formato geral para a definição de coluna pode ser assim:

ColN=Name Type Width #

É importante observar que, exceto pelo prefixo ColN= , todas as partes são opcionais, mas se você pode omitir dependerá de outros fatores, conforme discutido abaixo.
  • ColN= :Um prefixo obrigatório que deve estar em cada início de linha. O N deve ser um número começando em 1 e aumentando.
  • Name :dá o nome a uma coluna. Se o ColNameHeader está definido como True , o Name parâmetro pode ser omitido. No entanto, se for False , então você deve especificar o Name para evitar erros.
  • Type :Indica o tipo de dados. Se omitido, o Access usará sua melhor estimativa com base nas linhas digitalizadas, regidas pelo MaxScanRows opção. O type deve ser definido para um desses valores válidos. Os sinônimos são listados após a palavra-chave canônica:
    • Bit , Boolean
    • Byte
    • Short , Integer
    • Long
    • Currency
    • Single
    • Double , Float
    • DateTime
    • Text , Char
    • Memo , LongChar
    • Date

  • Width # :Indica a largura da coluna. Se isso for especificado, o literal Width deve ser incluído e seguido de um número. Se você quiser indicar que uma coluna tem 50 caracteres de largura, escreva:
    Col17=ProductDescription Text Width 50
    Para arquivos de largura fixa, a Width é mandatório. Com arquivos delimitados, você pode omiti-lo. No entanto, o Access usará essas informações para campos de texto para limitar o comprimento e possivelmente truncar o conteúdo. Para outros tipos de dados, a largura não tem efeito.

Conclusão


Você viu como controlar o esquema de um arquivo de texto usando um schema.ini que você pode criar em uma pasta onde o(s) arquivo(s) de texto reside(m). Você também pode ver que o schema.ini oferece um controle mais granular sobre as configurações regionais, o que pode ser útil se você estiver lidando com dados internacionais e não puder controlar a moeda ou a formatação da data. No próximo artigo, você verá o método alternativo de descrever a estrutura do arquivo de texto usando as tabelas de sistema do Access.