![]() |
Problemas al intentar actualizar registro
Estimados[as], llevo varias horas tratando de resolver esto, y no logro resolver una actualizacion de registro, lo que intento hacer es sumar un valor x a un registro, lo que significa que debo recuperar el valor actual antes de actualizar para poder realizar la suma correspondiente, agradeceria si alguien le echara un vistazo al codigo y pudiera comentarme en que me estoy equivocando, en principio se que tengo problemas en la redaccion de la cadena sql.txt y quizas en el parametro......Saludos y gracias desde ya ....
Código Delphi [-]dm1.IBQuery1.SQL.clear; dm1.IBQuery1.sql.Text := 'Select cod_producto,stk_actualk,stk_actuale from productos'; dm1.IBQuery1.Open; actual := dm1.IBQuery1.Fields[1].Value; dm1.IBQuery1.SQL.Clear; dm1.IBQuery1.sql.Text := 'Update from productos set stk_actualk = :vara where cod_producto = :varb'; dm1.IBQuery1.ParamByName('vara').AsInteger := actual; dm1.IBQuery1.ParamByName('varb').AsInteger := strtoint(dbedit2.text); dm1.IBQuery1.ExecSQL; |
Hola
Estas utilizando un mismo query para obtener la información pasándosela a una variable y luego sin cerrar el query lo limpias. Ademas usas el termino from en el update, eso no va. Me parece que deberías usar dos query asi: Saludos |
No me da error pero tampoco me actualiza......ejecuto la aplicacion y aparentemente termina bien, pero cuando voy a revisar la BD, no ha actualizado el registro.....alguna ocurrencia o metodo distinto para conseguir esto..... lo agradeceria.......saludos
|
Hola
Mira, yo utilizo el codigo que sigue para poder actualizar en 1 un contador de un Sistema.... pero en este caso se cuanto es lo que quiero sumar
Salu2:p:D |
Muchas gracias a todos por su tiempo, ha sido de mucha ayuda. Gracias.
|
update con Interbase
Hola Caral!
He probado el código que muestras y funciona muy bien!.Yo en vez de sumar un número quiero aplicar un porcentaje. El único incoveniente es que toma el primer registro aplica el porentaje y lo répite en toda la fila de la grilla. Me gustaria que le aplique a cada precio el porcentaje y que muestre el resultado correspondiente. Te muestro el código haber que modificación tendría que hacer. Desde ya gracias. mercaderia.IBDSmercaderia.Close; mercaderia.IBDSmercaderia.SelectSQL.Clear; mercaderia.IBDSmercaderia.SelectSQL.Text:='select * from mercaderia order by mercaderia.cod_merc asc'; mercaderia.IBDSmercaderia.Open; num:=mercaderia.IBDSmercaderia.Fields[4].Value; num1:=strtofloat(cambio.Text); porcent:=(num*num1)/100; num:=num+porcent; mercaderia.IBDSmercaderia2.Close; mercaderia.IBDSmercaderia2.SelectSQL.Clear; mercaderia.IBDSmercaderia2.SelectSQL.Text:='update mercaderia set precio_venta=:vara'; mercaderia.IBDSmercaderia2.ParamByName('vara').AsFloat:=num; mercaderia.IBDSmercaderia2.Open; |
| La franja horaria es GMT +2. Ahora son las 09:07:05. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi