Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   clientdataset posicionar cursor registro actual (https://www.clubdelphi.com/foros/showthread.php?t=74034)

Rofocale 27-05-2011 01:41:12

clientdataset posicionar cursor registro actual
 
Código Delphi [-]
Close;
            SQL.Clear;
            SQL.Add('UPDATE ventasareas SET areaventa = :areaventa,orden = :orden,');
            SQL.Add('articulo = :articulo,descrip = :descrip,');
            SQL.Add('cantidad = :cantidad,precio = :precio,cliente = :cliente,');
            SQL.Add('categoria = :categoria,fecha = :fecha WHERE codigo = :codigo');

            params.ParamByName('areaventa').Value := sAreaventa;
            params.ParamByName('orden').Value := iorden;
            params.ParamByName('articulo').Value := txtclave.Text;
            params.ParamByName('codigo').Value := txtcodigo.Text;
            params.ParamByName('descrip').Value := txtdescripc.Text;
            params.ParamByName('cantidad').AsInteger :=  dmDatos.cdsventarea.FieldByName('cantidad').AsInteger + StrToInt(txtcantidad.Text); <---- aqui me suma  mal cdsventarea es un clientdataset
            params.ParamByName('precio').Value := txtprecio.Text;


como veran en la linea de CANTIDAD el clientdata set por ejemplo tengo 3 filas insertadas

Código Delphi [-]
codigo    cantidad
1854         8
5412         12

ahora al actualizar el registro 5412 y le pongo una nueva cantidad de 15 al sumar esta cantidad deberia de dar 27, segun la linea de arriba el clientdataset esta posicionado en el primer registro.. al ingresar en el edit el valor 15 este en ves de sumar 15 + 12, suma 15 + 8 y el resultado es


Código Delphi [-]
codigo    cantidad
1854         8
5412         23

como puedo solucionar este problema ?

gracias

Caral 27-05-2011 01:57:57

Hola
Se coloca en el primer registro por que el update no se ha ejecutado.
El parametro trata de pedir un dato que no tiene aun.
Saludos

Al González 27-05-2011 02:08:51

No comprendí el planteamiento, pero tal vez te sirva modificar la sentencia SQL:
Código SQL [-]
...cantidad = cantidad + :cantidad...

Saludos en clave. :)

Rofocale 27-05-2011 02:51:50

muchas gracias me sirvio cantidad = cantidad + :cantidad... funciona bien


La franja horaria es GMT +2. Ahora son las 12:43:27.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi