Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Problemas con consulta SQL (https://www.clubdelphi.com/foros/showthread.php?t=77543)

JerS 06-02-2012 14:54:48

Problemas con consulta SQL
 
Estoy haciendo una consulta sencilla con un ADODataset

Código Delphi [-]
    ADO.Close;
    ADO.commandtext:=('Select acceso from permisos p,detallepermisos d where cedula='+Quotedstr(cedula)+' and p.codigo=d.codigo and fecha=current_date()');
    ADO.Open;
      If Not ADO.RecordSet.EOF Then
        Permiso:=ADO.Recordset.Fields.Item[0].Value
      Else
        Permiso:=0;

la hace bien pero en cierto momento me arroja esta excepción y al parecer es que se esta embasurando el Commandtext, no se que opinan ustedes y en que me pueden ayudar?

he pensado en asignar la consulta a una variable tipo string y despues asignarla al Commandtext

*****Exepcion en el Cuerpo Principal del Sistema [MySQL][ODBC 5.1 Driver][mysqld-4.1.16-nt]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

Casimiro Notevi 06-02-2012 16:15:33

A simple vista lo que parece que está mal es el sql que has puesto.

newtron 06-02-2012 16:42:12

¿Es posible que la variable "cedula" haya algún momento en el que el valor sea nulo o extraño?

Neftali [Germán.Estévez] 06-02-2012 19:02:42

Estaría bien que mostraras (o almacenaras en algún sitio) las consultas que vas lanzando para ver qué es lo que realmente envías.
Otra opción es capturar la excepción y aprovechar para mostrar ahí la consulta que está fallando.

JerS 06-02-2012 20:12:09

Cita:

Empezado por Casimiro Notevi (Mensaje 424334)
A simple vista lo que parece que está mal es el sql que has puesto.

Casimiro que esta mal en la consulta??

JerS 06-02-2012 20:13:17

Cita:

Empezado por newtron (Mensaje 424335)
¿Es posible que la variable "cedula" haya algún momento en el que el valor sea nulo o extraño?

la variable cédula solo toma valor al inicio, y para poder llegar a esta consulta el valida con esa misma variable que exista alguien con dicha cédula, dudo que tome un valor extraño

JerS 06-02-2012 20:14:59

Cita:

Empezado por Neftali (Mensaje 424351)
Estaría bien que mostraras (o almacenaras en algún sitio) las consultas que vas lanzando para ver qué es lo que realmente envías.
Otra opción es capturar la excepción y aprovechar para mostrar ahí la consulta que está fallando.

Neftali estoy capturando la excepción y lo que logro capturar es esto

[MySQL][ODBC 5.1 Driver][mysqld-4.1.16-nt]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

Caro 06-02-2012 21:56:01

Cita:

Empezado por JerS (Mensaje 424358)
Neftali estoy capturando la excepción y lo que logro capturar es esto

[MySQL][ODBC 5.1 Driver][mysqld-4.1.16-nt]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

Hola JerS, lo que Neftali te dice es que además de mostrar la excepción, muestres también la consulta que se ha generado en ese momento y así poder ver en donde esta el error.

Código Delphi [-]
Try
  ............
Except
 .............
 showmessage(ADO.commandtext);
end;

También puedes probar de hacerlo con un AdoQuery y ver si ocurre lo mismo.

Saluditos

JerS 06-02-2012 22:32:22

Cita:

Empezado por Caro (Mensaje 424364)
Hola JerS, lo que Neftali te dice es que además de mostrar la excepción, muestres también la consulta que se ha generado en ese momento y así poder ver en donde esta el error.

Código Delphi [-]
Try
  ............
Except
 .............
 showmessage(ADO.commandtext);
end;

También puedes probar de hacerlo con un AdoQuery y ver si ocurre lo mismo.

Saluditos

Gracias Caro gracias por tu aporte lo tomare en consideración y someteré a prueba a ver que arroja y lo publicare ;)

Neftali [Germán.Estévez] 07-02-2012 08:11:02

Cita:

Empezado por Caro (Mensaje 424364)
Hola JerS, lo que Neftali te dice es que además de mostrar la excepción, muestres también la consulta que se ha generado en ese momento y así poder ver en donde esta el error.

Eso mismo.
Gracias Caro, si es que eres la que mejor me entiende... :) ;)


La franja horaria es GMT +2. Ahora son las 05:47:54.

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