PDA

Ver la Versión Completa : Update con Adoquery


nicolasjavier
15-04-2014, 02:59:15
Hola, estoy intentando hace un UPDATE en una tabla de mi base, a traves de un query, conectado a su respectivo datasource.
"Puntos_de_venta" es mi tabla y "Desc_PtoVta y Sigla_PtoVta" son los campos que quiero actualizar, por el contenido que esta en editdescpvm.text y editsigpvm.text respectivamente. El problema es que me tira error EOleException y me dice que el nombre de la columna "el texto que tiene el editdescpvm.text" no es válido, y no puedo solucionarlo. Alguien sabe porque me toma el valor del edit como columna en vez de como el valor para actualizar el campo?
Les dejo el codigo:

begin
Querypvmok.Close;
Querypvmok.SQL.Add('Update Puntos_de_Venta ');
querypvmok.SQL.Add('set Desc_PtoVta='+editdescpvm.Text+',');
querypvmok.SQL.Add('Sigla_PtoVta= '+editsigpvm.Text);
querypvmok.SQL.Add('where Id_PtoVta='+editcodpvm.Text);
querypvmok.ExecSQL;
end;


Graciaaaaaaaasss

ecfisa
15-04-2014, 04:05:40
Hola nicolasjavier.

Cuando incluyas código en tus mensaje recuerda usar TAG's para darle más legibilidad:
http://img403.imageshack.us/img403/3461/75416396.jpg

En cuanto a tu consulta, proba de este modo:

with Querypvmok do
begin
Close;
SQL.Clear;
SQL.Add('UPDATE PUNTOS_DE_VENTA');
SQL.Add('SET DESC_PTOVTA = :DTO, SIGLA_PTOVTA = :SIG');
SQL.Add('WHERE ID_PTOVTA = :IDP');
Parameters.ParamByName('DTO').Value:= editdescpvm.Text;
Parameters.ParamByName('SIG').Value:= editsigpvm.Text;
Parameters.ParamByName('IDP').Value:= editcodpvm.Text;
ExecSQL;
end;


Saludos :)

nicolasjavier
15-04-2014, 05:04:56
Gracias por la recomendacion!!, Voy a probar a ver si asi funciona.

nicolasjavier
15-04-2014, 17:12:05
Gracias por la recomendacion!!, Voy a probar a ver si asi funciona.

Querypvmok.Close;
Querypvmok.SQL.TEXT:='Update Puntos_de_Venta set Desc_PtoVta= '+QuotedStr(editdescpvm.Text)+
',Sigla_PtoVta= '+QuotedStr(editsigpvm.Text)+' where Id_PtoVta='+QuotedStr(editcodpvm.Text);
querypvmok.ExecSQL;

Lo solucione de esta manera! Gracias por la ayuda (:

ecfisa
15-04-2014, 18:30:05
Hola nicolasjavier.

Si, de esa manera también funciona.

No te lo mencioné por que por varios motivos trabajar de ese modo no es buena práctica, en especial por que expone tu código al peligro de la Inyección SQL (http://es.wikipedia.org/wiki/Inyecci%C3%B3n_SQL)

Saludos :)