Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Búsqueda con Locate (https://www.clubdelphi.com/foros/showthread.php?t=20320)

JorgeBec 12-04-2005 18:29:09

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??? :confused:

agradeceré sus respuestas.

PD. Uso Delphi 4 con xBase

mamcx 12-04-2005 20:30:48

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)

JorgeBec 12-04-2005 20:47:59

Si ya cheque todo eso y si corresponde, la informacion de las variables contra la de los campos en la tabla... :confused:

mamcx 12-04-2005 21:20:07

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

JorgeBec 15-04-2005 19:04:32

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. :confused:

mamcx 15-04-2005 20:22:23

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?

JorgeBec 18-04-2005 18:09:45

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


La franja horaria es GMT +2. Ahora son las 17:29:49.

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