Hola a todos!! Tengo un problema q me trae de cabeza y la verdad espero que podais ayudarme. Tengo 2 tablas en interbase, Tabla1 con unos campos, ej.--> codigo ,nombre,domicilio,descripcion y tabla2 con 2 campos --> fecha y nombreBorrado.
Tengo una libreria con su udf en interbase hexa
En delphi dos grids con sus navigator cada uno y lo que quiero es que cuando
inserte,modifique o borre, en tabla1, cualquier registro me actualice la tabla2 con el nombre que se ha borrado,modificado o insertado y la fecha y hora cuando se realizo.
En los triggers de la tabla1(insert,update y delete) tengo
Código SQL
[-]AS
declare variable aux integer;
BEGIN
insert into "Tabla2"("descripcion","fecha")
values ('Nuevo: ' || new."nombre" || ' Viejo: ' || old."nombre"
,current_timestamp);
// udf le paso un puerto y un mensaje.
aux = "Mensaje"('4031', 'Recibido');
END
y asi para borrado e insercion. Pero si es un insert solo new.nombre y si es borrado solo ol.nombre con la fecha las dos.
Tengo en delphi un idudpserver y hago lo siguiente:
Código Delphi
[-]procedure TfrmPrueba.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
var
ST : TStringStream;
begin
ST := TStringStream.Create('');
try
ST.CopyFrom(AData, AData.Size);
ShowMessage(ST.DataString);
Dtstabla2.Close;
Dtstabla2.Open;
finally
ST.Free;
ST := nil;
end;
end;
Deberia de salirme el mensaje y al momento actualizar en tabla2 ,verdad? No me hace nada de esto y no se si lo estoy hacienod bien o que.
Las propiedades que tengo rellenas en el idudpserver son defaultport := 4031 y el active a true y el broadcasenable a true;
si alguien me puede ayudar,buff muxisimas gracias.
No se si se entendera espero que si.
gracias