** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y Otros sistemas
  Mensajes nuevos Mensajes nuevos RSS - Base de Datos Firebird Remota
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoBase de Datos Firebird Remota

 Responder Responder
Autor
Mensaje
leordzg79 Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 18/Marzo/2011
Localización: Mexico
Estado: Sin conexión
Puntos: 0
Enlace directo a este mensaje Tema: Base de Datos Firebird Remota
    Enviado: 12/Junio/2013 a las 22:53
Buen día.
En access 2007 tengo un proyecto, en donde tengo vinculadas tablas vinculadas de FIREBIRD por medio del odbc. Dichas Tablas son remotas (previamente configuradas desde el odbc).
El problema que tengo es que cuando alguna sucursal remota tiene problemas de conexión de internet, al abrir alguna consulta desde access que haga referencia a alguna tabla remota, simplemente se queda bloqueada.
Es de mi interés ver la manera en que yo pueda detectar que dicha tabla tiene problemas de conexión, y si es así avisar por medio de un mensaje. La verdad no tengo ni idea de como hacerlo pero aquí en el foro me han sacado de muchos apuros.
Gracias de antemano.
Arriba
a.alf Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 19/Octubre/2006
Localización: Castello España
Estado: Sin conexión
Puntos: 413
Enlace directo a este mensaje Enviado: 13/Junio/2013 a las 16:44
Hola en el foro off-line el Buho respondia a algo parecido a tu problema con el siguiente codigo:
 
 Yo empleo este truco. Cuelgo en mi servidor un txt y le leo previamente. Si devuelve lo que tiene que devolver, el server esta operativo. Si no devuelve lo que debe de devolver...es que esta caido.
Analiza el codigo pues funcionar funciona y cumple perfectamente lo solicitado:

//////////////////////////////////////////////////////////////////////////
Option Explicit
'Búho Enero 2007
Const scUserAgent = "Programa Foro Offline"
Const INTERNET_OPEN_TYPE_DIRECT = 1
Const INTERNET_FLAG_RELOAD = &H80000000
'//////////////////////////////////////////////////////////////
'constantes de URL de bajadas.
'en caso de cambiar de servidor, bastará cambiar estas constantes
Const strURLVersion = "http://www.mvp-access.com/cd/foro/version.txt"
'////////////////////////////////////////////////////////////////
Private Declare Function InternetOpen Lib "wininet" Alias _
    "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, _
    ByVal sProxyName As String, ByVal sProxyBypass As String, _
    ByVal lFlags As Long) As Long
Private Declare Function InternetCloseHandle Lib "wininet" ( _
    ByVal hInet As Long) As Integer
Private Declare Function InternetReadFile Lib "wininet" ( _
    ByVal hFile As Long, ByVal sBuffer As String, _
    ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer
Private Declare Function InternetOpenUrl Lib "wininet" Alias _
    "InternetOpenUrlA" (ByVal hInternetSession As Long, _
    ByVal lpszUrl As String, ByVal lpszHeaders As String, _
    ByVal dwHeadersLength As Long, ByVal dwFlags As Long, _
    ByVal dwContext As Long) As Long
Function DevuelveVersionServidor() As String
 On Error Resume Next
    Dim hOpen As Long, hFile As Long, sBuffer As String, Ret As Long
    sBuffer = Space(100)
    hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_DIRECT, _
        vbNullString, vbNullString, 0)
    'Abre la Url
    hFile = InternetOpenUrl(hOpen, strURLVersion, vbNullString, _
        ByVal 0&, INTERNET_FLAG_RELOAD, ByVal 0&)
    InternetReadFile hFile, sBuffer, 100, Ret
    InternetCloseHandle hFile
    InternetCloseHandle hOpen
    'Muestra los resultados
    DevuelveVersionServidor = Trim(sBuffer)
End Function
Sub prueba()
'debe devolver:
'FOROOFFLINE2.9
'si no devuelve eso....el server está caido
If DevuelveVersionServidor = "FOROOFFLINE2.9" Then
 MsgBox "server operativo"
Else
 MsgBox "server caido"
End If
End Sub
//////////////////////////////////////////////////////////////////////////////
 
[ El ejemplo es real y operativo y puesto en el foro Offline para comprobar si hay nuevas versiones o no]


Editado por a.alf - 13/Junio/2013 a las 16:46
Un saludo.

Si alguien te regala su tiempo, agradecelo eternamente, ya que te está dando algo que nunca recuperará.
Arriba
LeoRdzG Ver desplegable
Nuevo
Nuevo


Unido: 09/Junio/2007
Estado: Sin conexión
Puntos: 28
Enlace directo a este mensaje Enviado: 14/Octubre/2013 a las 17:57
a.alf Gracias por tu ayuda, y disculpa el atraso para contestar.

El problema realmente no es si tiene internet el equipo remoto o el equipo local, sino más bien, que el odbc se pueda conectar a la dirección de la base de datos remota, es decir:
que exista una conexión satisfactoria de la dirección remota de la base de datos: por ejemplo :

bura123.servehttp.com:C:\Bura\Sistemas Aspel\SAE5.00\Empresa01\Datos\SAE50EMPRE01.FDB
Gracias.

Arriba
ceac Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 05/Octubre/2007
Localización: Colombia
Estado: Sin conexión
Puntos: 1465
Enlace directo a este mensaje Enviado: 17/Octubre/2013 a las 15:31
Publicado originalmente por leordzg79 leordzg79 escribió:

...
El problema que tengo es que cuando alguna sucursal remota tiene problemas de conexión de internet, al abrir alguna consulta desde access que haga referencia a alguna tabla remota, simplemente se queda bloqueada...


Pues, realiza una funcion donde ejecutes una consulta a dicha tabla, si la respuesta es falsa, sin datos, la tabla tiene problemas...y mandas un mensaje. Algo así se hace con Access para comprobar la conexión con el Back-End llamado "tabla tonta" en el foro Offline lo puedes contrar, solo aplicalo a las tablas remotas.



«Todos morimos, pero sólo unos pocos viven de verdad» Mel Gibson - Corazón Valiente

Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable