Aqui te paso el codigo que tengo yo implementado.
Se hace un ping a la IP de tu Servidor Firebird,si no hay ping, es que no podemos conectar con la BD, si resuelve el ping, ponemos a false la propiedad Connected de la Bd y luego a True y listo.
A mi me funciona tanto en la red local como con la VPN de nuestra otra oficina.
Espero que te valga
Código Delphi
[-]procedure TfrmPrincipal.ConexinconBD1Click(Sender: TObject);
var
Handle: Integer;
Buffer: array [0..7] of Cardinal;
begin
Handle := IcmpCreateFile;
if Handle = -1 then Exit; if not LongBool(IcmpSendEcho(Handle, inet_addr(la ip de tu servidor Firebird), nil, 0, nil, @Buffer, SizeOf(Buffer),1000)) then
begin
MessageDlg ('Imposible realizar la conexión con la BD', mtError, [mbOK], 0);
CloseHandle(Handle);
datDatos.FIBDataBaseICCS.Connected:= False;
end
else
begin
MessageDlg ('Conexión realizada correctamente', mtInformation, [mbOK], 0);
datDatos.FIBDataBaseICCS.Connected:= False;
datDatos.FIBDataBaseICCS.Connected:= True;
end;
end;