Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   comprobar si una sentencia SQL es válida (https://www.clubdelphi.com/foros/showthread.php?t=8644)

Lionel 29-03-2004 09:43:04

comprobar si una sentencia SQL es válida
 
Hola buenos dias!!

Me gustaria saber si existe alguna funcion para comprobar si una sentencia SQL es válida, es decir, si esta bien construida y no va a generar error.
Y otra cosa, ¡se puede interceptar la excepcion que genera una sentencia mal construida?

Gracias!!

delphi.com.ar 29-03-2004 15:30:57

¿Qué motor estas utilizando?

Lionel 29-03-2004 16:23:16

Pues estoy utilizando el Delphi 6 y una base de datos MySQL. Utilizo para la conexion un conector ODBC para MySQL en su version 3.51.
Espero que sirva esto que te digo, mi pregunta es si existe alguna funcion dentro de Delphi para reconocer si una sentencia SQL es valida sin ejecutarla, o en caso contrario, poder interceptarla.

__cadetill 29-03-2004 16:58:46

pues la verdad no se si hay algo, lo que sí te puede decir es como capturar el error

Código:

try
  SQL.Open;
except
  // este error sólo saltará si la sentencia está mal construida y no es válida
  ShowMessage('Error en el SQL');
end;


Lionel 29-03-2004 17:12:45

Las sentencias las ejecuto con un ADOCommand asi q esa instruccion no la puedo hacer, no?

roman 29-03-2004 17:24:54

Hasta donde conozco no es posible detectar desde la parte cliente si la consulta es correcta o no en MySql. A final de cuentas vendría siendo una duplicación de trabajo creo yo innecesaria. Aunque a primera vista parezca sencillo, determinar si una sentencia SQL es gramaticalmente correcta, hay que considerar que la diversidad del tipo de sentencias es muy amplia y el análisis requerido puede ser complejo. En mi opinión, el buen y eficiente análisis ('parsing') de una sentencia SQL es una parte muy importante del servidor, no del cliente.

Yo mismo he sentido en ocasiones dicha inquietud y quizá sería buena idea que la biblioteca cliente de MySql incluyera el analizador sintáctico de sentencias SQL ya que esto ahorraría el envío- posiblemente costoso en tiempo -de sentencias incorrectas al servidor.

Pero también es de tener en cuenta que en muchos contextos no hay razón para que las sentencias SQL sean incorrectas ya que luego de una etapa de prueba de la aplicación deberemos estar seguros de que las sentencias son correctas.

El caso donde sí me parecería benéfico esta posible funcionalidad sería cuando necesitemos poder mandar sentencias 'libres', esto es, no programadas durante el diseñño sino especificadas durante la ejecución de la aplicación.

// Saludos


La franja horaria es GMT +2. Ahora son las 19:07:18.

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