Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-06-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Problemas en base de datos por desconexión en red inalábrica

Hola amigos

Tengo una duda respecto a un programa, resulta que diseñe un programa usando Paradox en una red alambrica, todo funcionó bien hasta que cambiaron a una red inalámbrica, por diversas razones algunas máquinas se desconectan de la red y causa que las tablas de paradox se queden abiertas con el problema típico de "index out of date".

Obviamente estoy cambiando el programa utilizando firebird, pero mi duda es, si se siguen desconectando las máquinas, ¿firebird tendrá el mismo problema? si es así como puedo evitar que las desconexiones causen algún problema, usando un trigger, un procedimiento almacenado, o que será lo mejor.

Ya le he comentado al cliente que necesita arreglar su problema de red ya que antes no pasaba eso, pero también quiero aprovechar para cambiar de base de datos y quiero tomar las debidas precauciones en caso de que sigan sucediendo esta clase de eventos.

Les agradecería su opinión al respecto.

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #2  
Antiguo 20-06-2007
Mick Mick is offline
Miembro
 
Registrado: may 2003
Posts: 405
Poder: 21
Mick Va por buen camino
Con firebird no tendras problemas de corrupcion de base de datos por desconexiones de red.

Eso si, segun que tipo de componentes de acceso uses en el programa cliente, tendras petadas, de los programas que obligaran a reiniciarlos, por ejemplo a los componentes IBX no les sienta nada vien las desconexiones con la base de datos, dando petadas bestiales, pero los datos en el servidor estaran a salvo a pesar de estas petadas de los programas clientes.

Saludos
Responder Con Cita
  #3  
Antiguo 20-06-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola Egostar
A mi me parece muy curioso que suceda algo asi, en mi caso se han desconectado los ordenadores sin previo aviso y nunca he tenido estos problemas, (tengo dos inalambricos), eso si lo que hago es que cuando la informacion es importante y se tiene que actualizar algo uso las transacciones del datamodule siempre, asi:
Código Delphi [-]
 DataModule1.AC1.BeginTrans;
      try
         QTemp.SQL.Text := 'Lo que sea';
         QTemp.ExecSQL;
         DataModule1.AC1.CommitTrans;
      except
         on E:Exception do
          DataModule1.AC1.RollbackTrans;
      end;
Bueno ya sabes que de esto no se mucho, casi nada, pero tal vez te de alguna idea.
Saludos
Responder Con Cita
  #4  
Antiguo 20-06-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por Mick
Con firebird no tendras problemas de corrupcion de base de datos por desconexiones de red.

Eso si, segun que tipo de componentes de acceso uses en el programa cliente, tendras petadas, de los programas que obligaran a reiniciarlos, por ejemplo a los componentes IBX no les sienta nada vien las desconexiones con la base de datos, dando petadas bestiales, pero los datos en el servidor estaran a salvo a pesar de estas petadas de los programas clientes.

Saludos
Gracias por tu respuesta Mick, precisamente estoy usando los componentes IBX, tendré que ver otros componentes antes de continuar.


Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #5  
Antiguo 20-06-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por Caral
Hola Egostar
A mi me parece muy curioso que suceda algo asi, en mi caso se han desconectado los ordenadores sin previo aviso y nunca he tenido estos problemas, (tengo dos inalambricos), eso si lo que hago es que cuando la informacion es importante y se tiene que actualizar algo uso las transacciones del datamodule siempre, asi:

Bueno ya sabes que de esto no se mucho, casi nada, pero tal vez te de alguna idea.
Saludos
Muchas gracias amigo Caral, pues te puedo asegurar que sabes mucho más que yo de bases de datos, normalmente no necesitaba mas que paradox en mis programas (y no en todos, en algunos ni siquiera necesito base de datos) ya que eran programas usados en una sola computadora, pero ahora me han pedido cosas en red y es cuando comence a 'tener problemas' .

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #6  
Antiguo 20-06-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Si te sirve de algo mi poca experiencia, te puedo decir que en la pruebas que he hecho con firebird el mejor resultado en cuanto a rapidez lo obtuve con Zeos, ademas que la conexion se hace directa via ip.
Con Ado via odbc, es una tortuga.
Con Ib, no me gusto, muchas conexiones y cosas raras.
Bueno de todos modos ya tendras tiempo para verlos y probarlos.
Una cosa interesante, cuando se trata de ip, si colocas el filtro en true, la rapidez aumenta impresionantemente, curioso.
Saludos
Responder Con Cita
  #7  
Antiguo 20-06-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Gracias amigo Caral, pues comenzaré a probar Zeos.

Salud OS maestro.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #8  
Antiguo 20-06-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Cita:
Salud OS maestro.

Que va, falta me muchísimo.
Saludos
Responder Con Cita
  #9  
Antiguo 20-06-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Bueno, pues caminando y miando para no hacer hoyos como dicen en mi pueblo.

Ya he bajado Zeos, también he consultado el tutorial de nuestro amigo AzidRain, (muchas gracias amigo Azid por ese excelente material).

Segui todos los pasos para la instalación de los componentes Zeos y todo OK.

Ya hice una prueba y se conecta muy bien.

Muchas gracias a todos.

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #10  
Antiguo 20-06-2007
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Como muy bien te comenta el amigo Caral, una de las principales características de un buen sistema de este tipo de bases de datos son las transacciones, con ellas se consigue que no ocurran incoherencias en la base de datos por cualquier motivo 'inesperado', haciendo un rollback de los procesos realizados se consigue dejar los datos en el estado inicial al comenzar la transacción.

En cuanto a los componentes a usar:
  • Los IBX (si no vas a usar dialecto 3) van muy bien
  • Luego tienes los más avanzados para Firebird MDO, libres y muy rápidos
  • FIBplus, lo mejor de lo mejor, aunque este es de pago
Los 3 anteriores son hijos del original FIB, también libre, y creo que son los mejores y más rápidos porque son los "más directos" a la base de datos, sin intermediario alguno.

Con esto no quiero decir que los otros sean malos, tan sólo que, para mi gusto, no son tan buenos.

Aquí tienes una comparativa que hizo CombatF2D sobre componentes de acceso a Firebird. Espero que te sirva.
Responder Con Cita
  #11  
Antiguo 20-06-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Muchas gracias amigo Casimiro, ya he leido el documento que citas.

Cuando comence a usar firebird siempre use dialecto 3, me apena decir que no se ni porque decidí usar ese dialecto pero seguramente lo ví mencionado en algún lado y lo hice de esa forma, la pregunta es, ¿porque usar ese dialecto no es tan bueno?.

Vi que IBX y FIBPlus son los más rápidos, pero eso también quiere decir que es el mejor método

Bueno, ahora tengo mas dudas sobre que componente usar. Sin embargo, se que con sus comentarios tomaré la mejor decisión.

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #12  
Antiguo 20-06-2007
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Dialecto 3 es el más moderno, tiene varias nuevas características, aunque así, a simple vista, el cambio principal para usarlo es que antes existían sólo los campos fecha 'timestamp' que agrupan fecha y hora, y en los nuevos, con dialecto 3, existen los 'date', los 'time' y los 'timestamp', o sea, se separan fecha, hora, y fechahora en campos distintos.
Yo sigo usando el método anterior, dialecto 1, por compatibilidad con lo ya desarrollado.
En cuanto a los componentes, el primero de todos fue FIB (hechos por Gregory Deatz), éstos fueron los que usaron Borland para Delphi, los modificaron un poco y los renombraron a IBX (FIB es software libre). Paralelamente nació otro hijo de FIB, que fue FIBplus (me parece recordar que al principio se llamaban FIB+ aunque no estoy muy seguro). Hace no mucho tiempo nació otro hijo de FIB, se llama MDO. La principal diferencia entre FIBplus y MDO es que están pensados para Firebird, sin embargo, IBX está anclado a Interbase porque, evidentemente, los mantiene Borland y no quieren adecuarlos a las últimas características de Firebird.
Toda esta familia es la más rápida en acceder a Interbase/Firebird porque lo hacen de manera directa mediante llamadas a la API de las mismas, al contrario del resto, que usan distintas capas intermedias.

Edito: los originales de Gregory Deatz se llamaban FreeIBComponents.

Última edición por Casimiro Notevi fecha: 20-06-2007 a las 23:14:57.
Responder Con Cita
  #13  
Antiguo 20-06-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Acabo de insalar los componentes MDO y los probé (por curiosidad) en una consulta sencilla, la verdad se conectan muy rapido y son relativamente sencillos de usar, el problema lo da al igual que zeos al hacer actualizaciones (Delete, Update, etc) en esto se necesitan enlazar con otro componente en el caso de MDO con (MDOUpdateSQ) en el caso de Zeos con (ZUpdateSQL), bueno esto es nuevo para mi y la verdad no lo entiendo bien, tal vez ahora que esta empezando Egostar con esto, podremos aprender todos.
Creo que esto de los componentes adecuados es una decision un poco particular, sinceramente a mi parecer me quedaria con ado, por su simpleza pero el inconveniente que le veo es la conexion por odbc, muy lenta.
Si teneis algun ejemplo de uso de estos (UpdateSQ), me seria de gran utilidad.
Saludos
Responder Con Cita
  #14  
Antiguo 20-06-2007
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Enlazar?, sólo has de usar un FibDataset, por ejemplo, con un par de clicks se crean automáticamente las sqls del select, update, delete, refresh, etc.
Y si quieres un acceso ultrarápido: una consulta de búsqueda, una actualización rápida, etc. entonces usa el FIBquery.
Responder Con Cita
  #15  
Antiguo 20-06-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por Casimiro
Dialecto 3 es el más moderno, tiene varias nuevas características, aunque así, a simple vista, el cambio principal para usarlo es que antes existían sólo los campos fecha 'timestamp' que agrupan fecha y hora, y en los nuevos, con dialecto 3, existen los 'date', los 'time' y los 'timestamp', o sea, se separan fecha, hora, y fechahora en campos distintos.
Bueno, pues con esa explicación, me quedo con el dialecto 3 ya que yo no uso el TIMESTAMP, yo separo la fecha de la hora en mi base de datos, por razones muy específicas.

Por otro lado, creo que seguiré utilizando IBX que en TurboDelphi se llama InterBase, se me hace fácil de usar, sobre todo el componente que menciona Casimiro TIBDataSet.

Muchas gracias, a coser y cantar se ha dicho

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #16  
Antiguo 21-06-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola Casimiro
Estoy tratando de aprender esto un poco y la verdad no le llego.
Tengo los componentes MDO y con estos estoy tratando de hacer lo que dices, hay un componente que se llama (MDODataSet1) supongo es el mismo en FIB.
Si esta a tu alcance colocar aqui un ejemplo sencillo de conexion y uso de estos en un adjunto, no importa que la base de datos sea otra, aqui la modificaria, pero si me seria de gran utilidad.
Saludos
Responder Con Cita
  #17  
Antiguo 21-06-2007
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Bueno, más o menos lo normal:
Pones un xxDataBase y le asignas un xxTransaction, luego un xxDataset asociado a la xxDataBase y un xxDataSource asociado al xxDataSet (este último sólo si quieres presentar el resultado en un dbgrid, por ejemplo).
Pones:
xxDatabase.connecte := true;
xxTransaction.active := true;
xxDataSet.Open
y eso es todo.

Código:
DMdoc.QRdocumento.Close;
DMdoc.QRdocumento.SelectSQL.Text := 'select campos from unatabla where condicion';
DMdoc.QRdocumento.Open;
if not DMdoc.QRdocumento.IsEmpty then
    DMdoc.QRdocumento.Edit
else
    DMdoc.QRdocumento.Insert;
Los parámetros para la transaction pueden ser estos:
Cita:
write
nowait
rec_version
read_committed
Aquí estoy para toda la ayuda que puedas necesitas.
Archivos Adjuntos
Tipo de Archivo: zip p22.zip (5,6 KB, 8 visitas)

Última edición por Casimiro Notevi fecha: 21-06-2007 a las 00:50:46.
Responder Con Cita
  #18  
Antiguo 21-06-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Gracias Casimiro.
Me sale un error en el que dice que no puede modificar en un dataset de solo lectura.
Donde estara la falla?
Saludos
Responder Con Cita
  #19  
Antiguo 21-06-2007
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Ahí te he pasado un ejemplo, lo que debes hacer en el dataset tuyo es: botón derecho->dataset editor, ahí verás los botones para crear automáticamente los insert, update, refresh y delete, según el select que hayas puesto.
Imagino que te dice que es de sólo lectura porque no has creado esos sqls (automáticamente).
He editado el post anterior y he incluido un ejemplo, espero que te sirva.
Responder Con Cita
  #20  
Antiguo 21-06-2007
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Por cierto, te recomiendo mucho el libro de Ian Marteens, La cara oculta de delphi, lo encontrarás en su página web, si ya ha renovado el dominio el amigo Ian.
Voy a intentar subirlo al ftp de clubdelphi, si no puedo, lo pongo en mi dominio, provisionalmente.


Edito: Lo he subido al ftp de clubdelphi, está aquí.
No sé si algún moderador quiera pasarlo a algún directorio en particular, que recuerde modificar este enlace. Gracias.

Última edición por Casimiro Notevi fecha: 21-06-2007 a las 01:06:53.
Responder Con Cita
Respuesta



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
Problemas de desconexion de la BD Giniromero Firebird e Interbase 6 27-12-2005 18:56:06
Desconexion base de Datos ander Firebird e Interbase 6 05-08-2004 22:11:36
Desconexión de una base remota acertij022 Conexión con bases de datos 1 13-02-2004 15:33:38
Desconexion Base de Datos (URGENTE) charly Firebird e Interbase 4 28-05-2003 16:12:20
problemas con la base de datos superhopi Conexión con bases de datos 1 19-05-2003 09:47:58


La franja horaria es GMT +2. Ahora son las 19:34:25.


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