SoloCodigo

Programación General => Delphi => Mensaje iniciado por: aim22 en Domingo 5 de Agosto de 2007, 03:05

Título: Problema Con Sql Update
Publicado por: aim22 en Domingo 5 de Agosto de 2007, 03:05
Tengo el siguiente codigo:
query_grado.SQL.Clear;
query_grado.sql.Add('update Grado set Habilitacion ='+ComboBox1.Text+'where Cve_habilitacion='+Edit2.Text+'');
que_grado.ExecSQL;

el error esta en la parte que esta en negritas... he cambiado el "Edit2.Text" por alguna variable, strings y enteras.. no importa, siempre me sale este error :

Invalid use of keyword.Token: Cve_habilitacion=1

aunque 1 es el dato correcto que esta en el Edit2

que pasa??
Título: Re: Problema Con Sql Update
Publicado por: ushedipe en Viernes 10 de Agosto de 2007, 18:02
:comp:

tendrías que verificar el tipo del dato que tienes que enviar (string o si es integer habría que cambiarlo con StrtoInt), por otra parte noto que en la sintaxis falta el ";" de final de la sentencia, justo donde envías la doble comilla sencilla y nada dentro de ella ''; además no estás dejando ningún espacio entre ComboBox1.text+ y where; el analizador sintactico va a ver como una sola palabra lo que te traiga el ComboBox1.text concatenado con el where.

Suerte :ph34r:
Título: Re: Problema Con Sql Update
Publicado por: aim22 en Sábado 11 de Agosto de 2007, 00:49
si, ya habia notado esos errores, pero gracias de todos modos...

termine por quitar eso y mejor hacerlo con la sentencia dentro de las strings de un query :P

gracias!
Título: Re: Problema Con Sql Update
Publicado por: gertorresm en Sábado 11 de Agosto de 2007, 01:07
pienso que tu codigo quedaría mucho mejor asi

Código: Text
  1. with query_grado do
  2.    begin
  3.      SQL.Clear;
  4.      sql.Add(' update Grado set Habilitacion ='+ComboBox1.Text +
  5.                   ' where Cve_habilitacion='+ Edit2.Text );
  6.      Prepare; // te Ayudara a optimizar el tiempo del motor
  7.      ExecSQL;
  8.    end;
  9.  

Si te das cuenta despues del edit2.text no necesitas utilizar mas comilla sencilla,ya que este es un valor string, y te recomiendo que nombres tus objetos, esto te facilita las labores de mantenimiento y lectura de código