Ver Mensaje Individual
  #11  
Antiguo 24-04-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Reputación: 25
Caral Va por buen camino
Hola egostar
Para empezar, se sabe que una transaccion se usa para salvar la integridad de los datos, bueno esto siempre que se tarte de mas de dos sentencias sql, en otras palabras, si se hacen dos transacciones y una falla, no se actualiza ninguna de las dos.
Ya que una sentencia de insercion no debuelve valores es importante saber si se hizo o no las transacciones.
En tu caso, se esta haciendo solo una sentencia sql, esta funciona o no, pero no afecta a mas sentencias sql, por eso me parece innecesario el uso de transacciones aqui.
Bueno yo haria una inserccion corriente y ya, funciona o no, eso es todo, asi:
Código Delphi [-]
   
    Fecha := StringReplace(Fecha,'/','.',[rfReplaceAll]);
    IBQuery1.Close;
    IBQuery1.SQL.Text := 'Insert Into Llamadas (Fecha, Extension, Hora, Prefijo,'+
               'Numero, Codigo,Departamento, CCostos, Troncal, Carrier, Ciudad,'+
               'Estado,SMedido,Costo, Iva, Duracion, DurEntera, ExtensionOrigen,'+
               'Empresa) '+
               'Values (' +QuotedStr(Fecha)+', '+QuotedStr(Extension)+', '+
               QuotedStr(HoraLlamada)+', '+QuotedStr(Prefijo)+', '+QuotedStr(Numero)+', '+
               QuotedStr(Fac)+', '+QuotedStr(Nivel1)+', '+QuotedStr(Nivel2)+', '+
               QuotedStr(Troncal)+', '+QuotedStr(Carrier)+', '+QuotedStr(Ciudad)+', '+
               QuotedStr(Estado)+', '+FloattoStr(SMedido)+', '+FloattoStr(CostoLla)+
               ', '+FloattoStr(Iva)+', '+QuotedStr(Duracion)+', '+
               InttoStr(Round(DurEntera))+', '+QuotedStr(ExtOrigen)+', '+
               QuotedStr(Empresa)+')';
    IBQuery1.ExecSQL;
 end;
Otra cosa que tienes que tener en cuenta es que las transacciones se hacen directamente a la tabla, no al query.
Mas, en el caso de seguir igual elimina el IBQuery1.Close; del principio.
Saludos
Responder Con Cita