FTP | CCD | Buscar | Trucos | Trabajo | Foros |
#1
|
|||
|
|||
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 agradeceré sus respuestas. PD. Uso Delphi 4 con xBase
__________________
Visita mi Weblog de Ingeniería de Software... |
#2
|
||||
|
||||
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. |
#3
|
|||
|
|||
Si ya cheque todo eso y si corresponde, la informacion de las variables contra la de los campos en la tabla...
__________________
Visita mi Weblog de Ingeniería de Software... |
#4
|
||||
|
||||
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. |
#5
|
|||
|
|||
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.
__________________
Visita mi Weblog de Ingeniería de Software... |
#6
|
||||
|
||||
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. |
#7
|
|||
|
|||
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
__________________
Visita mi Weblog de Ingeniería de Software... |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
|