Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-04-2005
JorgeBec JorgeBec is offline
Miembro
 
Registrado: jul 2003
Posts: 159
Poder: 21
JorgeBec Va por buen camino
Búsqueda con Locate

Hola Comunidad! Necesito hacer una búsqueda de 5 campos dentro de una tabla, en algunas ocasiones algunos de los campos no tendrán información, ahora tengo el siguiente codigo:

Código:
if not dmDatos.qryParamSF.Locate('transac;deporig;depdest;etapao;etapad', VarArrayOf([sTransac,sDeporig,sDepdest,sEtapao,sEtapad]),[loPartialkey]) then
pero cuando uno de los datos no tiene informacion NO me lo encuentra, aun cuando existe el registro, la búsqueda solo tiene exito si todos los datos traen informacion, obviamente no quiero estar validando los campos para saber como hacer la busqueda, cual puede ser la solucion???

agradeceré sus respuestas.

PD. Uso Delphi 4 con xBase
Responder Con Cita
  #2  
Antiguo 12-04-2005
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Porque no intentas con Sql?

Aunque , si por ejemplo, sDepdest no tiene informacion... que marca el campo de la tabla a la cual representa sDepdest que NO tiene informacion? es nulo? es cero? es una cadena? Deberias asegurarte que sDepdest(no tiene informacion)=CampoTabla(no tiene informacion)
__________________
El malabarista.
Responder Con Cita
  #3  
Antiguo 12-04-2005
JorgeBec JorgeBec is offline
Miembro
 
Registrado: jul 2003
Posts: 159
Poder: 21
JorgeBec Va por buen camino
Si ya cheque todo eso y si corresponde, la informacion de las variables contra la de los campos en la tabla...
Responder Con Cita
  #4  
Antiguo 12-04-2005
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Intenta usar la propiedad Filter y Filtered=True. Asi se puede escribir parecido a un Where de un Sql:

'Campo=... and campo=...'

Recuerda el uso de las comillas. Te recomiendo declares una constante:

Filtro=''Campo1=%s and campo=%d' etc... y uses format
__________________
El malabarista.
Responder Con Cita
  #5  
Antiguo 15-04-2005
JorgeBec JorgeBec is offline
Miembro
 
Registrado: jul 2003
Posts: 159
Poder: 21
JorgeBec Va por buen camino
Ya probe con SQL usando el where y tampoco, en el SQL builder le doy los espacios en las variables y nada, tal vez lo que faltaria checar es si en la tablas en los campos que estan vacíos haya campos nulos, yo entro por fox y supuestamente si hay espacios.
Responder Con Cita
  #6  
Antiguo 15-04-2005
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Si tienes FoxPro, dale TYPE(Tabla.campo) o VARTYPE(Tabla.Campo) para saber el tipo de datos...

Tambien que tal si pones la estrutura y unas filas de ejemplo?
__________________
El malabarista.
Responder Con Cita
  #7  
Antiguo 18-04-2005
JorgeBec JorgeBec is offline
Miembro
 
Registrado: jul 2003
Posts: 159
Poder: 21
JorgeBec Va por buen camino
Solucionado, use SQL, estaba tratando de hacerlo en base a parámetros pero no funcionaba y lo que hice fue lo siguiente:

Código:
              with dmDatos.qryParamSF do
              begin
                   Close;
                   SQL.Clear;
                   SQL.Add('SELECT * FROM Param WHERE transac = '''+sTransac+''' ');
                   SQL.Add('AND deporig = '''+sDeporig+''' AND depdest = '''+sDepdest+''' ');
                   SQL.Add('AND etapao = '''+sEtapao+''' AND etapad = '''+sEtapad+''' ');
                   ExecSql;
              end;

Gracias por todo MAMCX. Saludos
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 11:55:41.


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