Ver Mensaje Individual
  #6  
Antiguo 30-12-2007
johnlobo johnlobo is offline
Registrado
 
Registrado: oct 2006
Posts: 4
Reputación: 0
johnlobo Va por buen camino
Cita:
Empezado por enecumene Ver Mensaje
Hola podrias postear la sentencia completa por aqui?.

Saludos.
Bueno pues ahí va algo de código, aunque puede que no esté muy limpio...


Código:
Function nextArmario() : integer;
var
  aux : integer;
begin
  moduloDeDatosMdt.aux1Qry.Close;
  moduloDeDatosMdt.aux2Qry.SQL.Clear;
  moduloDedatosMdt.aux1Qry.SQL.Add('SELECT MAX(numArmario) FROM armarios');
  moduloDedatosMdt.aux1Qry.Open;
  aux:=moduloDedatosMdt.aux1Qry.Fields[0].AsInteger;
  moduloDeDatosMdt.aux1Qry.Close;
  nextArmario:=aux+1;
end;


procedure TmoduloDeDatosMdt.armariosTblBeforePost(DataSet: TDataSet);
var ultimoArmario : integer;
begin
ultimoArmario:=nextArmario();
if (armariosTbl.FieldByName('numArmario').Asinteger<>ultimoArmario) then
  begin
    armariosTbl.FieldValues['numArmario']:=ultimoArmario;
    showMessage('El número de armario ha cambiado durante la edición del mismo');
  end;
end;
El casque lo pega en la sentencia moduloDedatosMdt.aux1Qry.Open;" de la primera función, que se ejecuta justo antes de hacer un post, cuando la lanza el evento beforepost... he probado esta función fuera de los eventos y funciona perfectamente... :-(

Saludos,
John.
Responder Con Cita