Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-09-2016
Avatar de CarlosG
CarlosG CarlosG is offline
Miembro
NULL
 
Registrado: ago 2011
Posts: 24
Poder: 0
CarlosG Va por buen camino
SqlLite trunca texto leido

Hola.
Estoy conectando a una base de datos SqlLite mediante ODBC, para recuperar los datos de una tabla, pero los recupera truncados a 20 caracteres, aunque la columna tiene mas datos.

No se a que se debe si es un problema de configuracion u otra cosa.
Responder Con Cita
  #2  
Antiguo 30-09-2016
bitbow bitbow is offline
Miembro
NULL
 
Registrado: jul 2006
Posts: 365
Poder: 13
bitbow Va camino a la fama
Si tienes los campos definidos en tiempo de diseño, revisa si realizaste alguna actualizacion que no referescaste en el componente visual.

Si puedes proporcionar mas info?

Saludos.
__________________
¡Ni como ayudarte Niño!!
bitbow
Responder Con Cita
  #3  
Antiguo 30-09-2016
Avatar de CarlosG
CarlosG CarlosG is offline
Miembro
NULL
 
Registrado: ago 2011
Posts: 24
Poder: 0
CarlosG Va por buen camino
Smile

EL Script de la tabla es:
Código SQL [-]
CREATE TABLE TXXXX_PARAM(
   ID_PARA   VARCHAR(10) NOT NULL,
   NOM_PARA  VARCHAR(30) NOT NULL,
   VAL_PARA  VARCHAR(20) NOT NULL
)
La columna "VAL_PARA" aunque se define a "VARCHAR(20)" en Sqllite se traduce a TEXT que no tiene un limite definido, pero cuando leo una fila, el dato de la columna "VAL_PARA" con mas de 20 caracteres solo me devuelve los 20 primeros caracteres.

No uso diseñador, uso una conexion directa a ODBC, bueno la conexion directa desde V. FOXPRO
Código Delphi [-]
lcStringConn = "Driver={SQLite3 ODBC Driver};DATABASE=" + ALLTRIM(ls_BaseDatos) + ";NoTXN=1;SyncPragma=NORMAL;StepAPI=0;LongNames=1"
dbLink_sfs = SQLSTRINGCONNECT(lcStringConn)
Supongo que tiene que ver con el ODBC o una configuracion de SQLlite y NO con FOX, si no, no lo posteo en club Delphi.

Estoy usando el driver gratuito de ODBC de la url "http://www.ch-werner.de/sqliteodbc/"

Última edición por Casimiro Notevi fecha: 01-10-2016 a las 00:12:01.
Responder Con Cita
  #4  
Antiguo 01-10-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 29.028
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Y si lo cambias por varchar(30) también devuelve 20 caracteres?

Por cierto, recuerda poner los tags al código fuente, ejemplo:



Gracias
Responder Con Cita
  #5  
Antiguo 01-10-2016
Avatar de CarlosG
CarlosG CarlosG is offline
Miembro
NULL
 
Registrado: ago 2011
Posts: 24
Poder: 0
CarlosG Va por buen camino
Gracias por sus respuestas

Ya me se habia occurrido aumentar el ancho de columna VARCHAR, pero la base de datos es de una aplicacion externa no de la mia. Esa aplicacion la actualizan cada cierto tiempo, y si lo cambio y lo actualizan a unos meses, tendria que cambiar el ancho del campo de nuevo.
Responder Con Cita
  #6  
Antiguo 01-10-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 29.028
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Vale, pero:
Cita:
Empezado por Casimiro Notevi Ver Mensaje
¿Y si lo cambias por varchar(30) también devuelve 20 caracteres?
Responder Con Cita
  #7  
Antiguo 01-10-2016
Avatar de CarlosG
CarlosG CarlosG is offline
Miembro
NULL
 
Registrado: ago 2011
Posts: 24
Poder: 0
CarlosG Va por buen camino
Si lo cambio la columna por "varchar(30)" o "TEXT" ya no me recorta el dato devuelto, a menos no a 20 con varchar(30) .
Por el momento lo he cambiado a TEXT, hasta que tenga otra opcion que me permita hacerlo sin cambiar el esquema, es decir si hubiera .

gracias por sus aportes.
Responder Con Cita
  #8  
Antiguo 01-10-2016
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.579
Poder: 19
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Asi que la estructura dice que es 20, pero en realidad hay mas de 20. Pues pa' que tienen la estructura asi?

En fin, es probable que sea un problema del ODBC que le cree a la estructura. Que pasa si usas otro metodo, como ADO?

Una solucion a tu problema seria crear la tabla con la estructura correcta, darle insert desde el orgen (INSERT INTO Corregido SELECT *.....) y select desde Fox.
__________________
Nuevo Blog.
Ahora en Twitter!.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Base SqlLite en android, Como la recupero ? tulio Desarrollo en Delphi para Android 5 04-12-2014 11:25:19
Copiar Base de Datos SQLLite al Movil ASAPLTDA Desarrollo en Delphi para Android 1 03-01-2014 05:12:08
Como visualizar miniaturas de imagenes de un campo en una tabla sqllite juank1971 Conexión con bases de datos 2 31-05-2013 18:10:05
por que se trunca??? betto Impresión 2 27-05-2008 21:29:41
Que funcion trunca una fecha JavierO Varios 4 12-10-2005 19:47:55


La franja horaria es GMT +2. Ahora son las 02:47:16.


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