sql >> Base de Datos >  >> RDS >> Access

Parámetros de cadena de conexión para Schema.ini

Parámetros de cadena de conexión para Schema.ini

Haciendo un schema.ini abrir o vincular archivos de texto de Access es uno de los dos métodos posibles que se pueden usar para trabajar con datos contenidos en los archivos de Access. En el artículo anterior, analizamos los parámetros de la cadena de conexión del archivo de texto. También discutimos la necesidad de tener información de esquema adicional para ayudar a Access a analizar los archivos de texto. Microsoft tiene una página sobre schema.ini , pero hay algunas cosas que no quedan claras de inmediato, por lo que las cubriremos aquí.

schema.ini archivo

Cada carpeta puede tener un solo archivo llamado schema.ini donde podemos definir todos los formatos posibles de archivos de texto que esperamos encontrar dentro de la carpeta. Para cada archivo de texto, debemos comenzar una sección con el nombre del archivo y luego describir la estructura. Comenzaremos con una sección de muestra mínima y luego analizaremos cada parte. No es necesario enumerar todos los archivos de texto. Cualquier archivo de texto no descrito por schema.ini simplemente se manejará usando la configuración predeterminada para bien o para mal. Veamos la estructura del schema.ini .

[products.txt]

Format=CSVDelimited
ColNameHeader=True
MaxScanRows=0

Col1=Products Text
Col2=Count Long

Tenga en cuenta que la primera línea para iniciar una sección debe hacer referencia a un archivo de texto. También debe tener corchetes para indicar un inicio de sección. Como ya sabrá, un schema.ini puede describir más de un archivo de texto, por lo que la línea entre corchetes ayuda a mantener separado el esquema de cada archivo de texto.

El siguiente conjunto de líneas trata sobre el formato general del archivo y cómo Access debe procesar los archivos de texto. Podemos indicar si un archivo de texto tiene encabezados, cuántas filas escanear, qué página de códigos usar, etc.

El último conjunto de líneas describe las columnas individuales, su nombre, tipo de datos y ancho.

Revisaremos las opciones válidas y los valores posibles para esos 2 conjuntos.

Opciones para describir la estructura general del archivo de texto

Verá una lista de opciones válidas disponibles para describir el formato general del archivo de texto. Es típico especificar como mínimo el Format y ColNameHeader pero todos los contenidos posibles son opcionales. Siempre que se omitan, se utilizarán los valores por defecto como se indica a continuación. Veamos cómo podemos describir el formato de un archivo de texto dado.

Opciones generales de estructura

Como se señaló, son opcionales, aunque rara vez se omiten. No obstante, los valores predeterminados provienen de las claves de registro del motor de texto. Puede encontrar más detalles sobre las claves de registro aquí.

  • Format :Indica el formato de los archivos de texto. Si se omite, utiliza la clave de registro del motor de texto, Format . Los valores válidos son:
    • TabDelimited :Las pestañas delimitan las columnas.
    • CSVDelimited :Las comas delimitan las columnas como un archivo CSV.
    • Delimited(*) :Un solo carácter delimita las columnas. Puede ser cualquier carácter excepto el " personaje. Por ejemplo, un archivo de texto delimitado con | el carácter debe informar Format=Delimited(|) .
    • FixedLength :Las columnas son de longitud fija; el contenido debe rellenarse en consecuencia. Todas las columnas deben tener un ancho definido.

  • CharacterSet :utiliza una página de códigos específica para leer el archivo de texto. Los valores posibles pueden ser ANSI , OEM , Unicode o cualquier valor numérico que represente las páginas de códigos deseadas. Para ubicar todas las posibles páginas de códigos admitidas en su máquina con Windows, busque en la clave de registro Computer\HKEY_CLASSES_ROOT\MIME\Database\Codepage\ . Por ejemplo, si desea utilizar la codificación utf-8, puede especificar CharacterSet=65001 .
  • ColNameHeader :Indica si la primera línea contiene los nombres de las columnas. Cuando se omite, utiliza la clave de registro del motor de texto, FirstRowHasNames . Los valores pueden ser True o False .
  • MaxScanRows :Número de filas que Access debe escanear en un archivo de texto para adivinar el posible tipo de datos. Si se establece en 0, Access escaneará todo el archivo. La clave de registro del motor de texto MaxScanRows se usa cuando se omite.

Opciones de localización

Esas opciones se ocupan principalmente de localizar los datos codificados en fechas, horas o moneda. Todas esas opciones son opcionales y cada vez que se omite, se usa la configuración de Región de Windows.

  • DateTimeFormat :El formato de fecha/hora a usar.
  • DecimalSymbol :Cualquier carácter único utilizado como separador entre las partes entera y fraccionaria de un número.
  • NumberDigits :Número de dígitos utilizados en la parte fraccionaria de un número.
  • NumberLeadingZeroes :indica si debe haber un cero inicial para los números mayores de -1 y menores de 1. Debe ser True o False .
  • CurrencySymbol :identifica el símbolo que se interpretará como moneda.
  • CurrencyPosFormat :Describe cómo se deben informar las cantidades monetarias en el archivo de texto. Hay cuatro valores válidos para usar para esta configuración representada por el número 0 a 3. Tenga en cuenta que el ejemplo usa $ pero en el uso real, utilizará el símbolo de moneda real definido por CurrencySymbol o por la configuración de Windows.
    • 0 :Prefijo sin espacio (por ejemplo, $1)
    • 1 :Sufijo sin espacio (1$)
    • 2 :Prefijo con un espacio en medio ($ 1)
    • 3 :Sufijo con un espacio en medio (1 $)

  • CurrencyDigits :número de dígitos en la parte fraccionaria de una cantidad de moneda.
  • CurrencyNegFormat :Indica el formato de una cantidad de moneda negativa. Es un valor entre 0-15 como se muestra a continuación. Tenga en cuenta que el ejemplo usa $ pero en el uso real, utilizará el símbolo de moneda real definido por CurrencySymbol o por la configuración de 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 :Un solo carácter para indicar la separación de miles en un monto de moneda. Si se omite, se utiliza la configuración de Windows.
  • CurrencyDecimalSymbol :Un solo carácter para indicar el decimal de una cantidad de moneda.

Opciones de definición de columna

Vimos cómo podemos manejar el formato general del archivo, pero necesitamos dar más información sobre la columna individual. Más importante aún, necesitamos poder mapear los tipos de datos esperados de las columnas. Ergo, la tercera sección del schema.ini debe describir cada columna, con tantas filas como columnas haya en el archivo de texto de destino. El formato general para la definición de la columna puede verse así:

ColN=Name Type Width #

Es importante tener en cuenta que excepto por el prefijo ColN= , todas las partes son opcionales, pero si puede omitirlas dependerá de otros factores, como se explica a continuación.

  • ColN= :Un prefijo obligatorio que debe estar en cada inicio de línea. El N debe ser un número que comience en 1 y aumente.
  • Name :Le da a una columna el nombre. Si el ColNameHeader se establece en True , el Name El parámetro puede omitirse. Sin embargo, si es False , entonces debes especificar el Name para evitar errores.
  • Type :Indica el tipo de datos. Si se omite, Access usará su mejor cálculo basado en las filas escaneadas, regido por MaxScanRows opción. El type debe establecerse en uno de esos valores válidos. Los sinónimos se enumeran después de la palabra clave canónica:
    • Bit , Boolean
    • Byte
    • Short , Integer
    • Long
    • Currency
    • Single
    • Double , Float
    • DateTime
    • Text , Char
    • Memo , LongChar
    • Date

  • Width # :Indica el ancho de la columna. Si se especifica esto, el literal Width debe ser incluido y luego seguido por un número. Si desea indicar que una columna tiene 50 caracteres de ancho, debe escribir:
    Col17=ProductDescription Text Width 50
    Para archivos de ancho fijo, el Width es obligatorio. Con archivos delimitados, puede omitirlo. Sin embargo, Access usará esta información para campos de texto para limitar la longitud y posiblemente truncar el contenido. Para otros tipos de datos, el ancho no tiene efecto.

Conclusión

Ha visto cómo puede controlar el esquema de un archivo de texto usando un schema.ini que puede crear en una carpeta donde residen los archivos de texto. También puede ver que el schema.ini le brinda un control más granular sobre la configuración regional, lo que puede ser útil si está tratando con datos internacionales y no puede controlar la moneda o el formato de fecha. En el próximo artículo, verá el método alternativo para describir la estructura del archivo de texto utilizando las tablas del sistema de Access.