Ver Mensaje Individual
  #4  
Antiguo 15-02-2011
Avatar de lbidi
lbidi lbidi is offline
Miembro
 
Registrado: oct 2003
Ubicación: Montevideo- URUGUAY
Posts: 417
Reputación: 23
lbidi Va por buen camino
Thumbs down

Gracias amigos por responder.

rgs uso Advantage y no mysql.. Advantage tiene transacciones para la version servidor pero tambien tiene una version "local" la cual uso debido al poco tamaño de la bases, en esta version no se pueden usar transacciones.

Por lo cual debo hacer los loqueos y desloques yo mismo. Es una aplicacion de facturacion asi que mi problema se da cuando tengo que actualizar las numeradoras de las facturas.

Cuando un pc entra debo loquear el registro con el ultimo numero, actulizar el resto de las bases, incrementar el mismo y liberarlo. Cuando hay otro pc intentanto hacer lo mismo debe "esperar" ( sin mensaje ) a que se libere el registro, y haga el mismo proceso.

Lo que no puedo o no se hacer es que quede "esperando" hasta que se libere el registro.. Como la mayoria vengo de un ambiente xbase donde se hacia un loop hasta que pasaba, en Delphi no me doy cuenta como lograrlo.

Espero haber explicado un poco mas mi dilema..

El siguiente es parte de mi codigo.

Código Delphi [-]
try

    cTabla_Num.Edit;
    nUltimo := cTabla_Num.FieldByName('Estudios').AsFloat + 1;

    cTabla.First;
    while not cTabla.Eof do
    begin

        nCodigo := cTabla.FieldByName('Codigo').AsInteger;
 
        tbl_Estudios.Append;
        tbl_Estudios.Edit;
        tbl_Estudios.FieldByName('Numero').AsFloat      := nUltimo;
        tbl_Estudios.FieldByName('Fecha').AsDateTime  := edt_Fecha.Date;
        tbl_Estudios.FieldByName('Paciente').AsFloat     := cCodPaciente;
        tbl_Estudios.FieldByName('Ficha').AsFloat         := nFicha;
        tbl_Estudios.Post;

        cTabla.Next;

     end;
finally

    Qry.Close;
    cTabla_Num.FieldByName('Estudios').AsFloat := nUltimo;
    cTabla_Num.Post;

end;

Gracias por la ayuda..

Saludos
Responder Con Cita