Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Ayuda con un error de Filtered (https://www.clubdelphi.com/foros/showthread.php?t=45212)

thelibmx 26-06-2007 17:25:07

Ayuda con un error de Filtered
 
hola amigos, veran tengo un grid conectado a un datasource que asu ves esta conectado a una tabla (grid-->datasource-->tabla) entonces para hacer filtros en la tabla uso la siguiente instruccion
Código Delphi [-]
try
DBGrid1.DataSource.DataSet.Filtered:=false;
DBGrid1.DataSource.DataSet.Filter:='([incidencia]=3)and ([oficio]='''+Edit3.text+''')';
DBGrid1.DataSource.DataSet.Filtered:=true;
except
on e:exception do
showmessage('No hay numeros de folio con ese numero.');
end; //
bien lo que hace es que en el grid me hace un filtro por todas las incidencias que son nuemro 3 y segun el numero de folio que se escriba en un edit q en este caso es edit3, todo funciona bien, pero la cuestion es que cuando no existe el numero de folio en la tabla me manda un error que es el siguiente:

Cita:

General SQL error.
Error while executing the query;
ERROR: invalid input syntax for integer:''''
y el otro que sale es este:
Cita:

General SQL error.
Error while executing the query;
Error: error de sintaxis al final de la entrada en el caracter 49
ocupe esas etiquetas por que todavia no se manejar bien las de aqui del foro espero no se molesten...

continuando...
Se que el problema se origina al yo poner un numero de folio que no existe,si no encuentra el numero que inserte manda los mensajes de error, si le das aceptar a los mensajes el programa continua normalmente, use un try except y me cacho solo el segundo mensaje, pero el primero me lo sigue mostrando, como puedo atrapar el primer mensaje? les agradesco por su atencion :) lindo dia..

maro 30-06-2007 12:48:45

Hola,

¿El problema no puede ser que Edit3.text está vacio o con espacios en blanco?

Si es así, no esperes a que la ejecución del filtro te retorne un error, valida primero Edit3.text y si es correcto, realiza el fitro.

Un Saludo.

David 30-06-2007 14:19:11

Prueba esto a ver que tal

Código Delphi [-]
DBGrid1.DataSource.DataSet.Filter:='(incidencia=3)and (oficio='+QuotedStr(Edit3.text)+')';

thelibmx 02-07-2007 18:31:54

de hecho si tiene razon maro, tarde un poco al darme cuenta de ese error, solo que se me olvido poner que ya habia encontrado el origen, bien pues el filtro como dices pues no retorna error,y creo que tampoco lo generaba lo que pasaba era que tenia unos querys activos y al hacer yo el filtro habia un momento en que el valor quedaba en blanco,y entonces el que mandaba el error era el query, por eso por mas que ponia try, no cachaba ninguna excepcion, ahorita sigo en eso, pero lo bueno fue que ya identifique donde fue el error, tuve que revisar linea por linea en ejecucion :D jeje pero asi aprende uno, les agradezco por su ayuda, y ahora yo no ocupo en mi codigo de arriba el QuotedStr(Edit3.text) me podrian decir un poco para que es el quotedstr? gracias

eduarcol 02-07-2007 19:02:59

el QuotedStr se utiliza para encerrar un texto entre comillas, asi te evitas el enredo de comillas en la asignacion

thelibmx 02-07-2007 20:12:56

oh que bien, tratare de usar esa funcion... gracias:p


La franja horaria es GMT +2. Ahora son las 22:07:40.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi