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 Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-09-2019
ramonibk ramonibk is offline
Miembro
 
Registrado: may 2004
Posts: 193
Poder: 21
ramonibk Va por buen camino
ADO y CSV

Hola a todos.

una consulta de algo que me esta pasando y ni encuentro una explicación lógica ni manera de solucionarlo.

Estoy trabajando para mostrar un documento CSV en un DBgrid.

con un ADOConnection donde el proveedor es "Microsoft.Jet.OLEDB.4.0"
Código Delphi [-]
  object ADOConnection1: TADOConnection
    Connected = True
    ConnectionString = 
      'Provider=Microsoft.Jet.OLEDB.4.0;Password="";User ID=Admin;Data ' +
      'Source="";Mode=Share Deny None;Extended Properties="TEXT;DATABAS' +
      'E=./";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Je' +
      't OLEDB:Database Password="";Jet OLEDB:Engine Type=96;Jet OLEDB:' +
      'Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet ' +
      'OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password' +
      '="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Dat' +
      'abase=False;Jet OLEDB:Don'#39't Copy Locale on Compact=False;Jet OLE' +
      'DB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False'
    ConnectOptions = coAsyncConnect
    LoginPrompt = False
    Mode = cmShareDenyNone
    Provider = 'Microsoft.Jet.OLEDB.4.0'

De este cuelga un AdoQuery Donde.
Código Delphi [-]
AdoQuery.SQl.text := 'Select * From datos#csv'

Hasta hay todo correo. los datos se muestran sin problema.

el problema aparece si el documento CSV contiene una columna en la cual todo son IP
pues cuando la ip es 192.168.1.250 me pinta 1921681250 los puntos han desaparecido.
si por el contrario la columna es casi todo textos y solo alguna Ip lo pinta todo correctamente.
lo único que he conseguido ver es que cuando son todo IP el objero es
Código Delphi [-]
AdoQueryIP: TFloatField.
Pero cuando es mixta
Código Delphi [-]
AdoQueryMixta: TWideStringField

¿Hay alguna manera para que la consulta SQL me devuelva todo en modo string?
de esta manera creo que se solucionaría todo el problema.

Un saludo a todos.
y gracias de antemano.

Última edición por ecfisa fecha: 20-09-2019 a las 19:30:35. Razón: Quitar caritas del código
Responder Con Cita
  #2  
Antiguo 20-09-2019
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.549
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
No lo he probado, pero lo primero que probaría es a modificar la Query para ver si en la propia consulta hay forma de forzar el campo. Por ejemplo concatenando.
Al abrir un Excel pasa algo similar. El controlador "decide" el tipo del campo a partir de los caracteres que hay en su interior. Aquí debe estar pasando lo mismo.

Por ejemplo, a partir de la que tienes ahora:

Código SQL [-]
SELECT * FROM DATOS#csv

Puedes probar con:

Código SQL [-]
SELECT IP, * FROM DATOS#csv
SELECT "Dir. IP="+IP AS IP, * FROM DATOS#csv

No se si entiendes por dónde voy.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 20-09-2019
ramonibk ramonibk is offline
Miembro
 
Registrado: may 2004
Posts: 193
Poder: 21
ramonibk Va por buen camino
Su bueno mi primera opción ha sido crear cuatro tablas por IP "Ip1,Ip2,Ip3,Ip4"
y luego concatenar. pero eso me obliga a que cada vez que hay algún cambio de IP me toca coger el fichero que me pasan en excel y pasar un rato modificando. Hay como 6 columnas de IP´s.

la aplicación tiene que correr en un Win2K básico. por eso no uno excel directamente.
Responder Con Cita
Respuesta



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


La franja horaria es GMT +2. Ahora son las 01:23:39.


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