Cita:
Empezado por enecumene
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.