![]() |
Consulta sin resultados!!!!
Hola a todos,
Trabajo con una aplicación hecha en delphi 6 con IB 7, y dialecto 3. ¿Cómo puedo expresar, esto IF (el resultado de la consulta es nulo, esto es, no se han encontrado registros que coincidan con los parametros insertados ) THEN BEGIN (haz A); END ELSE BEGIN (haz B); END; en delphi? Muchas gracias Virginia |
Hola
¿ Te sirve RecordCount ? Código:
qryConsulta.Params.ParamValues['PARAM1'] = 'XXXX'; |
También puedes usar:
IsEmpty; Un Saludo. |
yo, personalmente, antes del RecordCount utilizaria
Código:
if Query.Fields[0].IsNull then |
Hola a todos, tambien pudiera utilizar las propiedades BOF y EOF de la siguiente manera:
Código:
IF bof and eof THEN BEGIN O sea, entiendo que IsNull se aplica al valor de un registro para determinado campo y no al conjunto de registros de un dataset. ¿Es así? Saludos |
Cita:
Cita:
No obstante, creo que no me he encontrado nunca con esa coincidencia (por el tipo de selects que lanzo cuando lo utilizo), por lo que tampoco lo aseguraría al 100% |
Esta vez difiero del amigo cadetill.
Tengo una tabla cuyo primer campo de su primer registro es null y Query.Fields[0].IsNull devuelve cierto con la consulta select * from tabla de manera que no es una opción para determinar si la consulta devuelve o no resultados. Yo creo que IsEmpty es lo más adecuado, este precisamente es el objetivo de dicho método y así está implementado desde TDataSet, la madre de todos los datasets, mientras que RecordCount está implemntado para devolver -1 en TDataSet y ya dependerá de los descendientes si lo implementan o no. // Saludos |
Hola, creo que técnicamente Null es más un estado que un Valor, es decir es un estado que anuncia la ausencia de valor. Por eso el IsNull devuelve True sobre un campo nulo de un registro existente.
Aunque para mi esa condición también serviria, puesto que practicamente todas (por no decir todas) mis consultas tienen como primer campo (además es el primer campo definido en las tablas) la clave primaria del registro devuelto. Asi pués, si el campo es nulo es que no hay registro. Imagino que Cadetill también hace las consultas de esta forma, de manera que esa condición siempre es valida para él. Pero ciertamente, estoy de acuerdo en que la mejor manera de ver si hay registros es utilizar el IsEmpty (está justamente para esto). Saludos. |
Muchas gracias por vuestra ayuda,
Finalmente puse algo parecido a lo que me aconsejó guillotmarc, con su RecordCount = 0, y parece que funciona. Lo dicho, que gracias. Virginia |
La franja horaria es GMT +2. Ahora son las 19:56:13. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi