Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Prepared query con Zeos.... (https://www.clubdelphi.com/foros/showthread.php?t=66804)

tgsistemas 12-03-2010 18:29:53

Prepared query con Zeos....
 
Estoy empezando una aplicación en D7 y MySql y siguiendo los consejos leídos en varios hilos, voy a utilizar los componentes Zeos.

Es la primera vez que los utilizo y al "reciclar" un código me he encontrado con que no lo compila, el código es :
Código Delphi [-]
    
with ZROqryValida do 
begin
Close; ZROqryValida.Params[0].AsString := edNmbre.text; if not Prepared then prepare; Open;
end;

se "queja" :D de undeclared identified : 'Prepared' imagino que debe faltar "algo" en el uses pero desconozco qué puede ser, podría alguien indicarme en qué me estoy equivocando ???

Saludos y Gracias a todos

roman 12-03-2010 18:50:11

Yo creo que ese código que encontraste estaba encerrado en un with y esos Prepared y Prepare pertenecen al ZQuery.

// Saludos

tgsistemas 12-03-2010 19:47:12

gracias roman,

ese codigo lo utilizo desde hace años en otras aplicaciones con BDE y nunca he tenido problemas al compliar. Entiendo que debe ser algo que falta al utilizar los Zeos pero desconozco el qué ya que es la primera vez que los voy a usar.

Perdona pero no entiendo qué quieres decir con "ese código que encontraste estaba encerrado en un with"... ahí está todo el código con el with que utilizo y ZROqryValida es el zquery que "prepare" una vez le paso los parámetros.

roman 12-03-2010 19:50:57

Disculpa, no me había fijado bien. Entonces, por lo que veo, los ZQuery no tienen esa opción.

// Saludos

tgsistemas 12-03-2010 20:32:40

gracias roman,

he buscado info y no he encontrado nada, supongo que no deben tener esa opción como bien dices.

Leí un hilo tuyo dónde dabas a entender que preferías otros componentes para mysql pero creo recordar que eran de pago.

Muchas gracias por la ayuda ;)

roman 12-03-2010 20:43:00

El ZQuery tiene una propiedad DbcStatement de tipo IZPreparedStatement. En este artículo se habla de la API que usa Zeos al estilo JDBC. Parece que puedes trabajar un poco a bajo nivel a través de esas interfaces. Sin embargo, en algún mensaje del foro de ayuda lei que en el caso de MySql, realmente no se prepara la consulta. Creo que actualmente MySQL ya soporta este tipo de consultas pero no estoy muy seguro. De todas formas, por esa razón, según entiendo, el IZPreparedStateent para MySQL está más de adorno que de otra cosa, es decir, se puede usar, pero realmente no hay una preparación de la consulta.

Yo uso los componentes MyDac de DevArt. Siento que han subido un poco de precio, pero aún así me parece razonable.

// Saludos

rgstuamigo 12-03-2010 23:41:42

Amigo tgsistemas no es necesario que prepares tu Dataset;). asi que tu anterior código sería mas o menos asi:
Código Delphi [-]
with ZROqryValida do 
begin
Close; ZROqryValida.Params[0].AsString := edNmbre.text; Open;
end;
.
Saludos...:)

tgsistemas 13-03-2010 11:55:30

gracias rgstuamigo,

lo he dejado como indicas, estoy haciendo pruebas, utilizando transacciones y parece que funciona correctamente.
Si detecto alguna "anomalía"... recurriré a vosotros como casi siempre ;);)

Muchas Gracias por la ayuda.

roman 16-03-2010 00:18:54

Claro que no es necesario preparar un query. Pero las consultas preparadas, cuando el motor las permite, son una forma de optimizar el rendimiento.

// Saludos


La franja horaria es GMT +2. Ahora son las 05:16:07.

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