Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-02-2015
Avatar de GustavoCruz
GustavoCruz GustavoCruz is offline
Miembro
 
Registrado: jul 2006
Ubicación: Sampués Sucre (Colombia)
Posts: 293
Poder: 18
GustavoCruz Va por buen camino
Tendría que decir adiós?

Hola amigos, me he topado con un inconveniente un tanto triste...
Tengo una base de datos en Firebird 2.5.3; es un problema de Conexión, Desconexión y Reconexión. Sólo llego a la segunda parte.
Buscando hallé este hilo, y creí solucionados mis problemas pero resulta fibplus se reusa a conectarse con firebird o quizas firebird se reusa permitir la conexión, he buscado por internet y nada.

Gracias por vuestro tiempo


GustavoCruz
Responder Con Cita
  #2  
Antiguo 09-02-2015
Avatar de GustavoCruz
GustavoCruz GustavoCruz is offline
Miembro
 
Registrado: jul 2006
Ubicación: Sampués Sucre (Colombia)
Posts: 293
Poder: 18
GustavoCruz Va por buen camino
Por dónde andará mi amigo Jonny???
Responder Con Cita
  #3  
Antiguo 10-02-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.022
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Para descartar problemas de red, conecta desde el equipo local donde está la base de datos.
Cuéntanos el resultado.
Responder Con Cita
  #4  
Antiguo 10-02-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.022
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Por cierto, no olvides poner títulos descriptivos a tus preguntas, ¿qué es eso de "tendría que decir adiós"?
Responder Con Cita
  #5  
Antiguo 10-02-2015
Avatar de GustavoCruz
GustavoCruz GustavoCruz is offline
Miembro
 
Registrado: jul 2006
Ubicación: Sampués Sucre (Colombia)
Posts: 293
Poder: 18
GustavoCruz Va por buen camino
Unhappy

Hola Casimiro, es que ando un poco triste y no sabía ni cómo titular el hilo...
ya intente lo que me conmentaste y me sigue apareciendo el mismo error... no permite la conexion si llevo una consulta en ejecución...

Me explico

Resulta que me llevo el aplicativo para otro equipo y hago desconectarlo, pruebo la Reconexión y todo bien, pero cuando estoy realizando una consulta, y desconecto el equipo, al momento de hacer la reconexión, me muestra una exception que indica que existe una consulta preparada... y es ahí donde muero.

este es el código que tengo para la reconexión
Código Delphi [-]
procedure TfDatos.RecDB;
var
  Handle: Integer;
  Buffer: array [0..7] of Cardinal;
begin
  Handle := IcmpCreateFile;
  Coneccion.CloseDataSets;
  Coneccion.Close;
  if Handle = -1 then
    Exit; // Error interno
  if not LongBool(IcmpSendEcho(Handle, inet_addr('192.168.1.108'), nil, 0,
  nil, @Buffer, SizeOf(Buffer), 1000)) then
    begin
      CloseHandle(Handle);
      Coneccion.Connected:= False;
      MsgBox(Titulo, 'Imposible realizar la conexión con la BD', mtError,
      ['Aceptar'], 0);
    end
  else
    begin
      Coneccion.Connected:= False;
      Coneccion.Connected:= True;
      Coneccion.Open();
      MsgBox(Titulo, 'Conexión realizada correctamente', mtInformation,
      ['Aceptar'], 0);
    end;
end;

He llegado incluso a pensar en pasarme a otro motor de base de datos. Con tal de superar este problema.


Gracia por vuestro tiempo

GustavoCruz
Responder Con Cita
  #6  
Antiguo 10-02-2015
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.732
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
¿Porqué le hechas la culpa al motor de base de datos cuando el problema está seguramente en el código?

Si te están diciendo que "hay una consulta preparada", deberías cerrar las consultas antes de proceder.
  • De todos modos, sería bueno que pusieras el mensaje de error exacto (sin resumir, sin traducir, completo) para que alguien pueda ayudarte.
  • Además sería conveniente que indicaras en qué línea del código que muestras está lanzando la excepción.
  • En tu código veo que utilizas una variable "Handle". El formulario también tiene una propiedad "TForm.Handle", por lo que podría ser que el compilador esté haciendo cosas raras al optimizar y eso genere errores.
  • Creo que hacer "Conección.Connected := True" es lo mismo que "Coneccion.Open", con lo que estarías abriendo algo abierto...
  • Deberías ver si hay código dentro de algún método que se ejecute al conectar la "Coneccion". Quizás este esté dando el error.
Y finalmente, para que no me lloren mas los ojos: Conexión, con X, por favor!
rae.es + conexión
Responder Con Cita
  #7  
Antiguo 10-02-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.022
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por duilioisola Ver Mensaje
¿Por qué le echas la culpa al motor de base de datos cuando el problema está seguramente en el código?
Exacto.

Además, no entiendo eso de desconectar y conectar, ¿para qué lo haces?
Responder Con Cita
  #8  
Antiguo 11-02-2015
Avatar de GustavoCruz
GustavoCruz GustavoCruz is offline
Miembro
 
Registrado: jul 2006
Ubicación: Sampués Sucre (Colombia)
Posts: 293
Poder: 18
GustavoCruz Va por buen camino
Hola, disculpen por la tardanza...

Esta es una imagen de lo que sucede.

La cuestión de la conexión y desconexión, es porque tengo esos problemas en el lugar donde actualmente estoy implementando, y no está demás poder tener una solución a tal eventualidad; si llegare a ser contratado en otra institución.

Nota: efectivamente así se escribe CONEXIÓN, pero no veo por qué el nombre de un componente pueda causar dolor en los ojos...

Gracias

GustavoCruz
Imágenes Adjuntas
Tipo de Archivo: jpg Sin título.jpg (14,2 KB, 24 visitas)
Responder Con Cita
  #9  
Antiguo 12-02-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.022
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Gustavo, ¿has hecho la prueba que te comenté?
Trabajas sin la red local o wifi o lo que tengan ahí. Te vas al ordenador donde está la base de datos, desconectas el cable de red, si quieres, y trabajas en local. Trabajas, usas el programa. No se te puede desconectar porque no está conectado.
Así que si falla entonces no es problema de la red. Es un error de programación.
Pero lo primero es descartar que realmente sea un problema de red.
Responder Con Cita
  #10  
Antiguo 12-02-2015
Avatar de GustavoCruz
GustavoCruz GustavoCruz is offline
Miembro
 
Registrado: jul 2006
Ubicación: Sampués Sucre (Colombia)
Posts: 293
Poder: 18
GustavoCruz Va por buen camino
Hola Casimiro eso ya lo probé, y me muestra "Conexión realizada correctamente"...
Como les comenté, en ocasiones me realiza la conexión y en otras no, eso depende de si en el momento de que esté desconectado intente realizar una consulta, si lo hago entonces ya no me puedo volver a conectar, pero si me percato en (suponiendo que sea el usuario final) el momento que estoy sin red entonces puedo hacer la reconexión... eso es un poco complicado porque los médico y las enfermeras no van a estar pendiente que esté o no esté el equipo conectado a la red.

Gracias por tu tiempo

GustavoCruz
Responder Con Cita
  #11  
Antiguo 15-02-2015
Avatar de GustavoCruz
GustavoCruz GustavoCruz is offline
Miembro
 
Registrado: jul 2006
Ubicación: Sampués Sucre (Colombia)
Posts: 293
Poder: 18
GustavoCruz Va por buen camino
Bueno...

Gracias a todos por sus sugerencias, pero tristemente le tendré que decir adiós a Firebird... por lo menos a la versión 2.x


GustavoCruz
Responder Con Cita
  #12  
Antiguo 15-02-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.022
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por GustavoCruz Ver Mensaje
Bueno... Gracias a todos por sus sugerencias, pero tristemente le tendré que decir adiós a Firebird... por lo menos a la versión 2.x
¿Qué tiene que ver la base de datos con tu problema?
Si no ves bien, ¿cambias de zapatos?
Responder Con Cita
  #13  
Antiguo 15-02-2015
Avatar de GustavoCruz
GustavoCruz GustavoCruz is offline
Miembro
 
Registrado: jul 2006
Ubicación: Sampués Sucre (Colombia)
Posts: 293
Poder: 18
GustavoCruz Va por buen camino
Yo también me siento decepcionado, sobre todo porque con firebird aprendía a hacer UDF, hice una que me convierte los números a letras utilizando el código que tiene el componente de ATexto creado por Antoni Aloy López, una que me calcula la edad utilizando el truco de mamu
De firebird estoy muy contento porque apredí mucho...
Pero este problema que me resulta de las desconexiones fortuitas es grave, y no me puedo dar el lujo de decirle a un Médico de una Unidad de Cuidados Intensivos que cierre y vuelva a abrir el programa porque éste se desconectó de la base de datos.

Es sólo ese detalle que me obliga a buscar otro motor de base de datos.
Me gustaría que entendieran mi posición. Porque no es fácil tener que migrar una base de datos de mas de 5 años...

Pero si aún me pueden ayudar con esto le agradezco

GustavoCruz
Responder Con Cita
  #14  
Antiguo 15-02-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.022
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Vamos a ver, la cosa es fácil, se ha explicado antes:

Primero se hacen comprobaciones para saber si la red local funciona bien. Si tiene problemas entonces hay que arreglar la red local.
Con red local me refiero a equipos, tarjetas, cables, router, etc.

Si la red local funciona perfectamente, entonces hay que verificar tu programa. No hay más. Punto. Se acabó. Fin.

Querer culpar a la base de datos es ilógico, incoherente, disparatado, inconsecuente, absurdo, irracional, ridículo, inverosímil.
Responder Con Cita
  #15  
Antiguo 15-02-2015
Avatar de GustavoCruz
GustavoCruz GustavoCruz is offline
Miembro
 
Registrado: jul 2006
Ubicación: Sampués Sucre (Colombia)
Posts: 293
Poder: 18
GustavoCruz Va por buen camino
Gracias Casimiro
Responder Con Cita
  #16  
Antiguo 15-02-2015
Avatar de GustavoCruz
GustavoCruz GustavoCruz is offline
Miembro
 
Registrado: jul 2006
Ubicación: Sampués Sucre (Colombia)
Posts: 293
Poder: 18
GustavoCruz Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Vamos a ver, la cosa es fácil, se ha explicado antes:

Primero se hacen comprobaciones para saber si la red local funciona bien. Si tiene problemas entonces hay que arreglar la red local.
Con red local me refiero a equipos, tarjetas, cables, router, etc.

Si la red local funciona perfectamente, entonces hay que verificar tu programa. No hay más. Punto. Se acabó. Fin.

Querer culpar a la base de datos es ilógico, incoherente, disparatado, inconsecuente, absurdo, irracional, ridículo, inverosímil.
A ver casimiro... el programa funciona bien.
Simplemente que cuando hay un fallo en la conexión con el servidor. EL MUNDO NO TIENE POR QUÉ ACABARSE. conque se haga esto es suficiente
Código Delphi [-]
Coneccion.Connected := False;
Coneccion.Connected := True
pero resulta que no es así.
Esa instrucción me debía cerrar cualquier consulta abierta y me debería permitir reconectarme la base de datos.
Crees que simplemente quiero culpar a Firebird?
Te invito a que hagas la prueba, y perdóname, pero no me vengas con teorías. Porque la teoria dice que esto es suficiente
Código Delphi [-]
Coneccion.Connected := False;
Coneccion.Connected := True

GustavoCruz
Responder Con Cita
  #17  
Antiguo 16-02-2015
Avatar de RONPABLO
[RONPABLO] RONPABLO is offline
Miembro Premium
 
Registrado: oct 2004
Posts: 1.514
Poder: 21
RONPABLO Va por buen camino
Cita:
Empezado por GustavoCruz Ver Mensaje
A ver casimiro... el programa funciona bien.
Simplemente que cuando hay un fallo en la conexión con el servidor. EL MUNDO NO TIENE POR QUÉ ACABARSE. conque se haga esto es suficiente
Código Delphi [-]Coneccion.Connected := False; Coneccion.Connected := True

pero resulta que no es así.
Esa instrucción me debía cerrar cualquier consulta abierta y me debería permitir reconectarme la base de datos.
Crees que simplemente quiero culpar a Firebird?
Te invito a que hagas la prueba, y perdóname, pero no me vengas con teorías. Porque la teoria dice que esto es suficiente Código Delphi [-]Coneccion.Connected := False; Coneccion.Connected := True


GustavoCruz
Lo que ocurre a mi me paso en algún momento y no lo pude solucionar con los IBX, osea, si estaba trabajando y por algún motivo la conexión a la red se perdía, me tocaba finalizar la aplicación a la fuerza, con el tiempo me di cuenta que ese problema es de la forma como se conecta a la base de datos como si fuera una aplicación local que estaba todo el tiempo conectada, para solucionarlo debería cambiar de forma de trabajar la capa de datos y no permanecer conectado todo el tiempo, solo establecer la conexión hacer un query almacenarlo en un clientDataSet y cerrar nuevamente la conexión o al hacer algún update, un insert o un delete tener todo los pasos listos y cuando toda la información este lista conectar, mandar la sentencia SQL y desconectar nuevamente, para trabajar puede usar los clientDataSet en vez de usar un DataSet o un IBDataSet
__________________
"Como pasa el tiempo..... ayer se escribe sin H y hoy con H"
Responder Con Cita
  #18  
Antiguo 16-02-2015
Avatar de RONPABLO
[RONPABLO] RONPABLO is offline
Miembro Premium
 
Registrado: oct 2004
Posts: 1.514
Poder: 21
RONPABLO Va por buen camino
Cita:
Empezado por RONPABLO Ver Mensaje
Lo que ocurre a mi me paso en algún momento y no lo pude solucionar con los IBX, osea, si estaba trabajando y por algún motivo la conexión a la red se perdía, me tocaba finalizar la aplicación a la fuerza, con el tiempo me di cuenta que ese problema es de la forma como se conecta a la base de datos como si fuera una aplicación local que estaba todo el tiempo conectada, para solucionarlo debería cambiar de forma de trabajar la capa de datos y no permanecer conectado todo el tiempo, solo establecer la conexión hacer un query almacenarlo en un clientDataSet y cerrar nuevamente la conexión o al hacer algún update, un insert o un delete tener todo los pasos listos y cuando toda la información este lista conectar, mandar la sentencia SQL y desconectar nuevamente, para trabajar puede usar los clientDataSet en vez de usar un DataSet o un IBDataSet

También usar una conexión para consultas o para cambios y una diferente si usas los eventos de firebird
__________________
"Como pasa el tiempo..... ayer se escribe sin H y hoy con H"
Responder Con Cita
  #19  
Antiguo 16-02-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.022
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pues eso, que no tiene nada que ver con la base de datos.
Responder Con Cita
  #20  
Antiguo 23-02-2015
Avatar de GustavoCruz
GustavoCruz GustavoCruz is offline
Miembro
 
Registrado: jul 2006
Ubicación: Sampués Sucre (Colombia)
Posts: 293
Poder: 18
GustavoCruz Va por buen camino
Hola amigos del foro, ya había dado por terminado este asunto de las pérdidas fortuitas de comunicación con la base de datos, sea cual sea la causa.

Descargué los componentes Unidac. Y para mi sorpresa funciona todo bien, nisiquiera tengo que indicarle al programa que se vuelva a conectar, pues los componentes lo hacen solos.

Sigo con Firebird

Gracias por vuestro tiempo


Gustavo Cruz
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
codigos para decir cosas BlueSteel Humor 2 06-06-2008 21:56:21
Que quiere decir set of (ver código) David OOP 6 14-05-2007 08:56:24
Lo que quiere decir el profesor.. marcoszorrilla La Taberna 2 07-10-2006 08:22:56
Adios rios, adios fontes, adios regatos pequenos marcoszorrilla Noticias 1 27-10-2005 00:07:31
Adiós al BDE Ruben_Cu Firebird e Interbase 4 22-06-2003 19:49:19


La franja horaria es GMT +2. Ahora son las 15:42:59.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi