Hola pepe 1853, bienvenido a los foros de Club Delphi
y como acostumbramos con los que ingresan te invitamos a que leas nuestra
guía de estilo.
No revisé a fondo el código de la sentencia SQL pero en principio tendrías que usar la función
QuotedStr al modo de:
Código Delphi
[-]
consulta := 'UPDATE PRODUCTOS SET PRO_IDPROVEEDOR=: '+ QuotedStr(pro_IDproveedor) + ...
Pero, de todos modos te aconsejo que acostumbres a usar parámetros, evita la
inyección SQL y además es mucho mas claro de visualizar.
La modidificación que deseas hacer usando parámetros, quedaría mas o menos así:
Código Delphi
[-]
...
var
qy: TSQLQuery;
begin
qy := SQLQPROVEEDORES;
qy.Close;
qy.SQL.Clear;
qy.SQL.Add('UPDATE PRODUCTOS');
qy.SQL.Add('SET PRO_IDPROVEEDOR = :IDPROVEED, PRO_NOMBRE = :NOMBRE,');
qy.SQL.Add('PRO_PRECIOVENTA = :PVENTA, PRO_PRECIOCOSTO = :PCOSTO,');
qy.SQL.Add('PRO_STOCK = :STOCK, PRO_ESTADO = :ESTADO, PRO_CATEGORIA = :CATEG');
qy.SQL.Add('WHERE PRO_IDPRODUCTO = :IDPRODUC');
qy.ParamByName('IDPROVEED').Value := DBEdit1.Text;;
qy.ParamByName('NOMBRE').Value := DBENombre.Text;
qy.ParamByName('PVENTA').Value := DBEPVenta.Text;
qy.ParamByName('PCOSTO').Value := DBEPCosto.Text;
qy.ParamByName('STOCK').Value := DBEStock.Text;
qy.ParamByName('ESTADO').Value := DBEEstado.Text;
qy.ParamByName('CATEG').Value := DBECategoria.Text;
qy.ParamByName('IDPRODUC').Value := DBEdit8.Text;
qy.ExecSQL;
...
Saludos