Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-03-2004
Lionel Lionel is offline
Miembro
 
Registrado: mar 2004
Posts: 36
Poder: 0
Lionel Va por buen camino
Post 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!!
Responder Con Cita
  #2  
Antiguo 29-03-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
¿Qué motor estas utilizando?
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 29-03-2004
Lionel Lionel is offline
Miembro
 
Registrado: mar 2004
Posts: 36
Poder: 0
Lionel Va por buen camino
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.
Responder Con Cita
  #4  
Antiguo 29-03-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
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;
Responder Con Cita
  #5  
Antiguo 29-03-2004
Lionel Lionel is offline
Miembro
 
Registrado: mar 2004
Posts: 36
Poder: 0
Lionel Va por buen camino
Las sentencias las ejecuto con un ADOCommand asi q esa instruccion no la puedo hacer, no?
Responder Con Cita
  #6  
Antiguo 29-03-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
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
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 18:35:12.


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
Copyright 1996-2007 Club Delphi