Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-04-2008
ilichhernandez ilichhernandez is offline
Miembro
 
Registrado: oct 2005
Posts: 277
Poder: 21
ilichhernandez Va por buen camino
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;
__________________
[Lo que a veces es tan facil, a veces parece imposible]
Responder Con Cita
  #2  
Antiguo 30-04-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
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:
Código Delphi [-]

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.IBQuery2.sql.Text := 'Update productos set stk_actualk = :vara where cod_producto = :varb';
dm1.IBQuery2.ParamByName('vara').AsInteger := actual;
dm1.IBQuery2.ParamByName('varb').AsInteger := strtoint(dbedit2.text);
dm1.IBQuery2.ExecSQL;
Saludos
Responder Con Cita
  #3  
Antiguo 30-04-2008
ilichhernandez ilichhernandez is offline
Miembro
 
Registrado: oct 2005
Posts: 277
Poder: 21
ilichhernandez Va por buen camino
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

Código Delphi [-]

dm1.IBQuery1.sql.Text := 'Select cod_producto,stk_actualk,stk_actuale from productos';
dm1.IBQuery1.Open;
actual := dm1.IBQuery1.Fields[1].Value;

dm1.IBQuery2.sql.Text := 'Update productos set stk_actualk = :vara where cod_producto = :varb';
dm1.IBQuery2.ParamByName('vara').AsInteger := actual + strtoint(dbedit3.text);
dm1.IBQuery2.ParamByName('varb').AsInteger := strtoint(dbedit2.text);
dm1.IBQuery2.ExecSQL;
__________________
[Lo que a veces es tan facil, a veces parece imposible]
Responder Con Cita
  #4  
Antiguo 30-04-2008
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 26
BlueSteel Va por buen camino
Cool

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
Código Delphi [-]
     IBQ_Select.SQL.Clear;
     IBQ_Select.SQL.Add('Update "Parametros" Set "Par_Orden"="Par_Orden"+1');
     IBQ_Select.ExecSQL;
     IBT_Select.Commit;

Salu2
__________________
BlueSteel
Responder Con Cita
  #5  
Antiguo 02-05-2008
ilichhernandez ilichhernandez is offline
Miembro
 
Registrado: oct 2005
Posts: 277
Poder: 21
ilichhernandez Va por buen camino
Muchas gracias a todos por su tiempo, ha sido de mucha ayuda. Gracias.
__________________
[Lo que a veces es tan facil, a veces parece imposible]
Responder Con Cita
  #6  
Antiguo 23-07-2008
Gbyte Gbyte is offline
Miembro
 
Registrado: may 2008
Posts: 75
Poder: 19
Gbyte Va por buen camino
Lightbulb 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;

Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problemas al intentar conectarme desde el cliente al servidor de firebird El_Chava Firebird e Interbase 2 22-04-2008 00:45:41
Actualizar registro georgejg Conexión con bases de datos 2 26-03-2008 23:35:00
Problemas al intentar trabajar con .ini Greco OOP 2 30-07-2007 21:14:05
Problemas al intentar levantar una BD de Interbase ilichhernandez Firebird e Interbase 8 13-10-2006 17:15:44
Actualizar un único registro Muten Firebird e Interbase 2 16-03-2004 16:03:30


La franja horaria es GMT +2. Ahora son las 12:26:52.


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
Copyright 1996-2007 Club Delphi