Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Error al generar Numero de Cotizacion (https://www.clubdelphi.com/foros/showthread.php?t=90886)

webmasterplc 27-09-2016 15:42:35

Error al generar Numero de Cotizacion
 
Buenas estoy tratando de totalizar un presupuesto en el cual llamo dos funciones una que es la que toma e numero que viene de una base de datos y coloca el siguiente esto funciona perfecto igual aqui dejo el codigo por si alguna sugerencia de optimizacion o si le sirve a alguien.

Código Delphi [-]
var
ncot,pncot:Integer;
begin
with datos.sqcalculo do
      begin
      SQL.Clear;
      SQL.Add('Select * From csconfig');
      ExecSQL;
      ncot:= FieldByName('config_cotizacion').AsInteger;
      end;
      pncot:= ncot+agregado;

      with datos.sqcalculo do
      begin
      SQL.Clear;
      SQL.Add('Update csconfig');
      SQL.Add('set config_cotizacion=:pn_cot');
      ParamByName('pn_cot').AsInteger:=pncot;
      ExecSQL;
      end;

y la llamo asi
Código Delphi [-]
  numerocot(1);
              guardarcotizacion(documento,control,txtobservaciones.Text,1,1,100,12,112,0,now);

el problema esta es si ocurre algun error en un parametro de el p´rocedimiento guardarcotizacion el igual me suma un numero a la base de datos de la cotizacion que viene

Neftali [Germán.Estévez] 27-09-2016 17:04:39

Supongo que independientemente de otras consideraciones, ambas operaciones deberían hacerse dentro de la misma transacción, de forma que si falla la segunda, se anule la primera y no incrementes el contador.

gatosoft 28-09-2016 04:45:52

Tambien puedes revisar la posibilidad de trasladar toda la lógica de la generación de la cotización a la base de datos, asi podrias tener todo dentro de un procedimeinto almacenado (en el motor que utilices) y no tendras que trabajarlo con transacciones en delphi. ambas opciones son váldas.


La franja horaria es GMT +2. Ahora son las 00:04:16.

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