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)
-   -   Consulta SQL en ADOQuery (https://www.clubdelphi.com/foros/showthread.php?t=60273)

epenor 26-09-2008 09:36:14

Consulta SQL en ADOQuery
 
Estoy intentanto hacer esta consulta y recibo un error que dice que "La sentencia SELECT esta usando una palabra reservada o está mal escrita". Lo que trato de hacer es sacar los datos del cliente cuyo codigo (numerico) es introducido en un edit numerico (JvIntegerEdit).

Código:

QTemp.SQL.Text := 'Select Nombre, Direccion, Telefono, from Clientes '+
                            'where Codigo = '+QuotedStr(Edit1.value)+' )';
QTemp.Active := true;
      If QTemp.RecordCount < 1 then
      begin
        MessageDlg('¡Código de cliente no existe!',mtError,[mbOK],0);
        Edit1.SetFocus;

Será que estoy poniendo el parte del edit incorrectamente?

coso 26-09-2008 10:13:33

Hola, si codigo es entero, no debes poner el QuotedStr. Esta funcion solo es necesaria para strings. Ademas, tienes un parentesis innecesario.

tcp_ip_es 26-09-2008 12:02:32

edit1.value???? sería edit1.text

epenor 26-09-2008 15:03:36

coso: Ya quite el parentesis del final, pero aun continua dandome error.ç

tcp_ip_es: este edit un "integer edit" que solo retorna valores enteros. Es del paque Jedi (jvIntegerEdit).

Neftali [Germán.Estévez] 26-09-2008 15:24:18

Cita:

Empezado por epenor (Mensaje 316483)
...telefono, from...

Bueno yo veo por aquí una coma de más. Posiblemente te esté cogiendo el FROM como nombre de campo. :o

coso 26-09-2008 15:42:17

Cita:

Hola, si codigo es entero, no debes poner el QuotedStr. Esta funcion solo es necesaria para strings.
esto tambien...para comparar enteros no debe estar en comillas el valor.

NestorN 28-09-2008 01:42:43

Hola espero que te sirva el aporte
Código Delphi [-]
QTemp.SQL.Text := 'Select Nombre, Direccion, Telefono, from Clientes '+
                            'where Codigo LIKE '+QuotedStr(Edit1.value)+' )';
QTemp.Active := true;
      If QTemp.RecordCount < 1 then
      begin
         MessageDlg('¡Código de cliente no existe!',mtError,[mbOK],0);
         Edit1.SetFocus;

proba usando LIKE en ves de =. Suerte

epenor 29-09-2008 04:16:27

Muchas gracias NestorN, Funciona bien.


La franja horaria es GMT +2. Ahora son las 02:47:53.

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