Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Otro metodo de insercion que sea mejor hacerlo via query (https://www.clubdelphi.com/foros/showthread.php?t=33238)

ilichhernandez 30-06-2006 15:39:32

Otro metodo de insercion que sea mejor hacerlo via query
 
Hola amigos, bueno aun tengo alguno problemas a la hora de realizar la insercion con el Query, tomo los datos de un archivo de texto y los quiero grabar en una bd de interbase, la lectura de los datos del archivo esta ok, lo comprobe con mensajes, pero al leer cierta cantidad de registros se cae el Query..... de que otra menera puedo realizar la insercion sin pasar por un query ....

Ahh... el mensaje de error es el que sigue.

"General SQL error, arithmetic exception, numeric overflow, or string
truncation" "Cannot transliterate character betwen character sets"

Ahora realizando unas pruebas me di cuenta que el error sale cuando leo un registro que tinene un caracter extraño, me refiero que, por ejemplo el nombre que rescato del archivo de texto por ejemplo es muñoz, el programa que genera el archivo de texto (que es otro programa) lo genera como "mu¥oz" , y cuando mi programa trata de guardar este dato en la BD la aplicacion se cae con el mensaje antes descrito..... como podria hacer para que la bd acepte este tipo de caracteres.

Una pregunta anexa, se puede cargar una grid (dbgrid supongo) con datos desde variables y no desde una base de datos ??, o sea me refiero para pasar los datos desde el archivo de texto a la grid directamente sin pasar por la bd...


Gracias.

ilichhernandez 30-06-2006 18:38:37

Al final lo e echo con el dbgrid ..... con la funcion pos ubique los caracteres extraños y los reeemplze... ahora se insertan todos los registros..... gracias de todas formas.

Lepe 01-07-2006 12:26:06

En lo sucesivo, modifica la base de datos para que use el estandard ISO8859_1 y el collate ES_ES.

Cada campo en la base de datos debes especificar el collate (para que los caracteres casen con España) (muy útil un Domain en estos casos ;)). Despues al tiempo de conectarte, también tienes que especificar en los parámetros del TDatabase.Params
Código:

      user_name=SYSDBA
      password=masterkey
      lc_ctype=ISO8859_1

Saludos


La franja horaria es GMT +2. Ahora son las 06:50:54.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi