Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Error al restar registros Entre Tablas (https://www.clubdelphi.com/foros/showthread.php?t=71909)

Lenny 18-01-2011 03:00:49

Error al restar registros Entre Tablas
 
Buenas y gracias de antemano, nuevamente, necesito de su ayuda.

Tengo este codigo que me genera un error:

Código Delphi [-]
BDatos.PRODUCTOSTAB.Edit;
BDatos.PRODUCTOSTAB.FieldbyName('STOCK').AsString:=
floatToStr (StrToFloat (BDatos.PRODUCTOSTAB.FieldbyName('STOCK').AsString) -
StrToFloat (BDatos.PRODUCTOSFTAB.FieldbyName('STOCK').AsString));
BDatos.PRODUCTOSTAB.Post;

El error es este:

Cita:

First chance exception at $75A69617. Exception class EZSQLException with message '2 record(s) updated. Only one record should have been updated.'. Process DISEMAQ.exe (660)
Si saco el POST del codigo funciona impecable, a que se deve este error??? estare muy agradesido ante cualquier aydua, de antemano muchas gracias.

PD. Utilizo Delphi 2010, MySQL, Zeos...

Aleca 18-01-2011 12:32:44

porqué no usas AsFloat en lugar de AsString? (algún motivo en especial):confused:

Lenny 18-01-2011 13:52:37

Pido mil disculpas, la falta de sueño a veces nos juega malas pasadas, el "ERROR" era que tenia registros repetidos en la tabla, el codigo estaba bien, pero GRACIAS ALECA!!! tu sugerencia indirectamente me hiso ver el error en la tabla y el codigo quedo mejor (menos engorroso y mas ordenado), de esta manera:

Código Delphi [-]
procedure TPRODUCCION.Button1Click(Sender: TObject);
begin
if BDatos.PRODUCTOSTAB.FieldbyName('STOCK').AsFloat <
   BDatos.PRODUCTOSFTAB.FieldbyName('STOCK').AsFloat then begin
    ShowMessage('El STOCK no es suficiente, elija una cantidad menor.');
    Abort;
end else
begin
BDatos.PRODUCTOSTAB.Edit;
BDatos.PRODUCTOSTAB.FieldbyName('STOCK').AsFloat:=
BDatos.PRODUCTOSTAB.FieldbyName('STOCK').AsFloat -
BDatos.PRODUCTOSFTAB.FieldbyName('STOCK').AsFloat;
BDatos.PRODUCTOSTAB.Post;
end;
end;

Hace lo que necesito con menos enredo, como se dice, "NO HAY MAL QUE POR BIEN NO VENGA"
Por si a alguien le sirve, lo que hago es filtrar ambas tablas con el producto requerido, una tiene el STOCK general y la otra el STOCK requerido (se que no es necesario, pero tengo mis motivos de filtrar dos tablas, toy en plena etapa de PRUEBA Y ERROR y necesito algo asi) si el STOCK es mayor al que existe nos avisa, si existe STOCK continua con el PEDIDO - INGRESO o EGRESO correspondiente... gracias nuevamente ALECA por responder e iluminarme y sugerir un cambio que facilita y ordena mi trabajo... Byes!!!

Aleca 18-01-2011 14:03:33

Cita:

Empezado por Lenny (Mensaje 387859)
Hace lo que necesito con menos enredo, como se dice, "NO HAY MAL QUE POR BIEN NO VENGA"
Por si a alguien le sirve, lo que hago es filtrar ambas tablas con el producto requerido (se que no es necesario, pero tengo mis motivos de filtrar dos tablas) si el STOCK es mayor al que existe nos avisa, si existe STOCK continua con el PEDIDO - INGRESO o EGRESO correspondiente... gracias nuevamente ALECA por responder e iluminarme y sugerir un cambio que facilita y ordena mi trabajo... Byes!!!

no será para tanto, de nada. :)


La franja horaria es GMT +2. Ahora son las 23:34:17.

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