Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-11-2012
jsc jsc is offline
Miembro
 
Registrado: nov 2003
Posts: 144
Poder: 21
jsc Va por buen camino
Problema en consulta sql

Hola,
Tengo problemas con una consulta sql que lanzo desde delphi a una bd access (en si la consulta si la lanzo desde acces tambien da el mismo problema asi que no es problema de delphi)
Los datos en access estan importados de una hoja excell. La hoja excell, no tiene en todas las columnas datos, asi que podemos encontrar en alguna columna blancos - ahí el problema
La cosa, es que no se de que manera puedo tratar esos blancos ya que he probado de todo
En acces todos los campos estan definidos como texto: el campo tlf2 de algun registro contiene texto...
Supongamos que la hoja excell tiene:
Código:
NOMBRE  DIRECCION TELEF1 TELEF2
jsc1       direccion1   tlf1  tlf2
jsc2       direccion2   tlf2
nombre3 direccion3   tlf3
...
en delphi, tengo una etiqueta por campo(nombre,direccion,tlf1,tlf2) de manera que la busqueda la pueda hacer concatenando parametros con los valores de
Código:
edit1.text, edit2.text,edit3.tex,edit4.text
la consulta que lanzo al escribir cualquier caracter en cualquiera de los edit es lo siguiente
Código:
procedure buscar(s:string);
begin
   with form1 do
      with form1.Query1 do
         TRY
         Close ;
         SQL.clear ;
         Params.Clear ;
         sql.add ('SELECT * FROM TABLA') ;
         if s<>'todos'
         then
            begin
               sql.add (' where NOMBRE like :nomb AND DIRECCION like :direc AND TELEF1 like :tlf1 AND TELEF2 like :tlf2');
               parambyname ('nomb').asstring := '%'+edit1.Text+'%' ;
               parambyname ('direc').asstring := '%'+edit2.text+'%';
               parambyname ('tlf1').asstring := '%'+edit3.text+'%';
               parambyname ('tlf2').asstring := '%'+edit5.text+'%'
            end;
         IF not prepared
         then
            begin
               close ;
               prepare;
               open;
            end
         else open ;
         EXCEPT MessageDlg ('Errores en la consulta',mtWarning,[mbOK],0);
         END;
end;
llamada:
Código:
procedure Tform1.Edit1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
   buscar ('param') ;
end;
llamada para cargar todos al cargar el Form1

Código:
procedure Tform1.Edit1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
   buscar ('todos') ;
end;
si escribimos en edit1 jsc de tal manera que
Código:
edit1.text:= 'jsc'
lo que espero me devuelva la consulta son todos esos nombres que contengan JSC; es decir
Código:
NOMBRE  DIRECCION TLF1 TLF2
jsc1       direccion1   tlf1  tlf2
jsc2       direccion2   tlf2
en cambio el resultado es bien distinto ya que el tlf2 que estaria en blanco no lo devuelve

Código:
NOMBRE  DIRECCION TLF1 TLF2
jsc1       direccion1   tlf1  tlf2
he cambiado el campo tlf2 de texto a numero en access por hacer la prueba pero el resultado es el mismo
pienso que el problema esta en la tabla excell y en esos campos en blanco. Tendria manera de saber esos blancos realmente que valor almacenan para poder tratarlos en una consulta?
o lamentablemente, a esos valores en blanco tendria que asignarles un valor en excell? por ejemplo "0"?
lo he probado asi y si que funciona la consulta; el problema es que son alrededor de 30.000 registros y es un problema si no se el valor que almacena como blanco para poder hacer un
Código:
UPDATE...
sobre el campo en cuestion

Siento la chapa; he intentado detallar el problema lo maximo posible por si alguien pudiera ayudarme

gracias de antemano
Responder Con Cita
 



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
problema con una consulta leofuentes21 SQL 6 28-02-2011 16:04:27
problema con consulta sql gonza_619 Varios 6 22-07-2010 19:42:56
problema en consulta metroyd MySQL 2 09-03-2008 19:35:58
Problema con Consulta Tolón SQL 5 29-01-2007 23:52:19
problema con consulta. jsanchez SQL 2 20-05-2003 19:35:55


La franja horaria es GMT +2. Ahora son las 00:59:46.


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