Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Ap Multiusuario:Cómo avisar que un reg está siendo editado?
Ir a página Anterior  1, 2
 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Bases de Datos
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Responder citando

Gracias nuevamente a Bosoft y César.
Los involucré en un análisis que me ayuda muchísimo porque soy nueva tanto en c++ como en interbase.
He pensado mucho luego de la pregunta de César, ¿en qué caso concurrirían dos usuarios a modificar el mismo registro?
Y es verdad, es lo suficientemente improbable.
Y también es verdad que mis dudas surgieron a partir de plantearme las posibilidades de concurrencia aferrada al viejo sistema de bloqueos.Repito: soy nueva en interbase Smile.
Había leído lo que encontré en el foro en cuanto a transaccionesy debo decir que nuevamente César me has sido de gran ayuda.Ya que en:
https://cppbuilder.es/viewtopic.php?t=10273&highlight=transacciones
has explicado muy bien el tema, y me dí una idea sobre el manejo de eventos.Pensaba en incorporarlos junto con algunos procedimientos almacenados para evitar lo que plantea bosoft de algún usuario desconsiderado que interrumpa momentáneamente su modificación para realizar otra tarea y deje al resto esperando.(esta situación fue la que me llevó a pensar en informar al usuario que está esperando quién fue el desconsiderado que dejó la modificación pendiente,y para que la situación no pase a mayores conflictos entre el personal Smile, que le avise antes de realizar sus modificaciones).
Pero no sabía bien cómo hacerlo.
Ahora ya sé que puedo asignar un tiempo desde el servidor para decidir que hacer con esa transacción pendiente: nuevamente, gracias César!
En cuanto a BTRIEVE no puedo opinar, mi conocimiento es bastante limitado y aún no he experimentado con el trial que me bajé.
Sin pretender excederme demasiado ni aburrir a nadie,y a pesar que ya tengo bastante claro como resolver mi duda inicial,les cuento a grandes rasgos sobre mi aplicación al sólo efecto de que se entienda porqué me he hecho semejante embrollo. Confused
El objetivo principal de mi aplicación es el control de la ejecución de procesos en una empresa donde se pretende que todo el personal sepa hacer y realice todas las tareas involucradas en cada proceso.Es decir, durante un proceso, puede haber varios usuarios accediendo al proceso para modificar el estado de las tareas que cada uno realiza.
A su vez cada tarea consta de varios estados y es independiente de la otras que se realizan simultáneamente.
El encargado del control verá un formulario de procesos.
Proceso 1
Tarea 1, Asignada a
Tarea 2, Asignada a
Tarea 3, Asignada a;
Y asignará para un determinado proceso cada tarea a uno o más empleados.
Empleado A empieza Tarea1 de Proceso1
mientras que Empleado B termina Tarea2 de proceso1 y
Empleado C cambia el estado de tarea3 mientras el encargado del control verifica el estado de las tareas del Proceso1 y asigna nuevas tareas a otros empleados.
Podría suceder, Empleado A haya terminado sus tareas asignadas, saque un listado de tareas pendientes y se haya autoasigando Tarea1 en el mismo momento en que el encargado de control de tareas decidió asignar Tarea1 a Empleado B.
Sí! sería un empleado muy eficiente y trabajador.Es bastante improbable esta situación.Sin embargo la idea utópica de esto es que en un futuro sean los propios empleados quienes se asignen las tareas incluso unos a otros.
Gracias nuevamente a todos y saludos.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

bien, para verificar que esta información se encuentra dentro del componente, insertamos un componente TIBTransaction

y verificamos las siguientes propiedades del componente



DefaultAction: TACommitRetaining
IdleTimer: 0

la primera identifica la accion a realizar, en este caso estoy generando una actualizacion sobre todos los dataset que contenga esta transaccion

y el segundo parametro me permite definir el numero de segundos para que la transaccion realice esta operacion... por el momento y en vista de ser un ejemplo lo he dejado en 0, esto siginifica que soy yo quien controla el cuando y como hacerlo pero si cambio y establezco un numero, el numero identifica los segundos que debe esperar la "transaction" para realizar la opcion "DefaultAction"

saludos

pd: esto es de la ayuda de Builder

Cita:
TIBTransaction.IdleTimer

TIBTransaction See also
-------------------------------------------------------------------------------
Specifies how long the transaction should wait before automatically committing or rolling back.

property IdleTimer: Integer;

Description

Use IdleTimer to indicate how long a transaction should be allowed to remain idle before automatically committing or rolling back the data. Use DefaultAction to determine which action the transaction should take.

_________________
Cool


Ultima edición por Cesar C. Salazar Gonzalez el Vie 03 Nov, 2006 6:56 am, editado 1 vez
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Inventar otra vez la RUEDA? Responder citando

Creo que bosoft quiere volver a inventar la rueda. Efectivamente como dice Cesar hoy en día es aconsejable manejar bases de datos SQL por eso mismo de los bloqueos de registros inventados par bases de datos de Escritorio. Querer seguir con estas bases de datos y programarlas a base de bloqueos para tener un control manual de la edición, en mi opinión es tiempo perdido. En INTERBASE existe el Alertador de EVENTOS, una función muy potente para avisar a los usuarios que tu quieras de las posibles incidencias en los registros de las base de datos. En cuanto al ultimo ejemplo de pone BONOFT; el usuario edita, se olvida de presionar enter y se va a tomar un café, mientras tanto otro usuario intenta modificar ese mismo registro. Pues bien, ese problema lo tienes porque programas con bloqueos de registros de Base de Datos de Escritorio, que por cierto como te ha dicho Cesar, está obsoleto desde la aparición de SQL.
Si este mismo problema lo hubieses planteado con INTERBASE, aplicando ALERTAS y transacciones correctamente, no pararía absolutamente nada. El primer usuario se podría ir a hacerse una café desde VALENCIA A MADRID, me da exactamente igual el servidor de INTERBASE es el que se encarga de controlar esto y es responsabilidad suya, y creo que por mucho que te esfuerces en hacerlo mejor que el siempre cometerás fallos imprevistos. Me parece muy bien que programes a tu manera, es decir al estilo antiguo, pero no pretendas decir en este foro que esa forma es mejor, porque creo que estás liando el tema. Por otra parte creo que deberías de leer el libro ‘La Cara Oculta de C++ Builder’, el cual aclarará bastante el tema que planteas.

El lenguaje SQL se creo para solucionar todas estas molestias de bloqueos y registros entre otras innumerables mejoras y entendimiento lo mas estándar posible.

Bajo mi punto de vista, las bases de datos de escritorio, ya sea ACCES, BTRIEVE, CODEBASE, DBASE, PARADOX, ect. Son del pasado y solo son aconsejables si la aplicación en si son sencillas y bajo un solo usuario. Te aconsejo que leas unos cuantos libros sobre distinto tipos de base de datos y luego juzgues tu mismo.

Si en una base de datos del tipo mencionado cuando tienes abierta muchas tablas y registro a la vez el PC se desconecta ya sea por un corte de luz o cualquier otro tipo de fallo el resultado final de los datos es bastante imprevisible, mientras tanto que si la base de datos es SQL es el servidor el que se encarga de asegurar los datos y como mucho solo pierdes los datos del ultimo registro que estabas editando. Para estos casos y otros muchos son las transacciones que te comentaba CESAR. Por tanto, Resumiendo y para terminar La programación con bases de datos de escritorio en un entorno multiusuario con bloqueos es volver a la edad de PIEDRA.

Ten en cuenta que todo esto, al igual que haces tú, es solamente una opinión, y no tengo ánimo de molestar a nadie. Solo decirte algo más, si quieres programar bases de datos multiusuario deberías de plantearte migrar a algún motor de SQL. Es el presente y futuro de las Bases de Datos. También decir que BTRIEVE muestra su potencia cuando actúa como monopuesto y que si la comparas con un motor SQL, perdería en rapidez de CONSULTAS bajo las mismas condiciones de Hardware.

En cuanto a la persona que ha comenzado este post yo solo le diría:
Como parece que estas manejando INTERBASE te convendrías echar un vistazo en la ayuda sobre el componente IBEVENTS. De seguro que encuentras lo que estás buscando.
_________________
Muchos hombres no se equivocan jamás porque no se proponen nada razonable.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Visitar sitio web del autor
Mensaje    Asunto: Responder citando

Gracias Jesús.
Ya mencioné que había leído un post en este foro:
https://cppbuilder.es/viewtopic.php?t=10273&highlight=transacciones
(justamente César te explicaba a vos creo el manejo de eventos en la página 2). Gracias a ello ya me dí una idea de cómo reflejar los cambios en todas las terminales a través del manejo de eventos y también ahora manejo el tiempo de las transacciones desde el servidor.
Ni bien tenga refinado el asunto lo posteo así alguna vez puedo colaborar y ayudar a alguien.
Y sí, sigo con Interbase y ya voy entendiendo los beneficios de su arquitectura!
Pero cada uno sabe con qué herramienta se siente más cómodo.Bosoft ha querido darme una mano y lo agradezco.
El libro que mencionás "La cara oculta de c++" también lo tengo y, aunque todavía me quedan páginas por leer, lo recomiendo.Aquí va el enlace desde donde se lo pueden bajar:
http://www.marteens.com/caraoculta.htm
Gracias a todos, realmente me han sido de muchísima ayuda.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

vamos por partes JesúsGandia:
Primero: Yo jamas he querido reinventar nada de nada.
Segundo: si no quieres ofender, suelta tu rollo sin decir lo que estas pensando de los demas.
Tercero: Llevo mas de 20 años en programacion y muchas aplicaciones instaladas, tanto MSdos como win. JAMAS he tenido problemas con base de datos y son muchos los terminales trabajando al mismo tiempo en cada aplicacion.
y Cuarto: Ponte al dia. Btrieve es un motor de base de datos, pero si miras comparativas hechas por empresas expertas, las demas sql no tienen nada que hacer. Hoy en dia se llama Pervasive SQL. He usado alguna vez el sql y no me gusta, por lo tanto, como hay mas gustos que colores, no debo arrepentirme de eso. Y si a alguien le molesta simplemente que no mire.

En cuanto a lo del cafe, las bases de hoy en dia simplemente desconectan, es decir, usan el estilo billy gates. cuando no puedes, resetea y eso a mi no me va

Saludos, Bosoft.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

bosoft escribió:
Primero: Yo jamas he querido reinventar nada de nada..


.. Se respeta tu comentario


bosoft escribió:
Segundo: si no quieres ofender, suelta tu rollo sin decir lo que estas pensando de los demas..

.. Se respeta tu comentario


bosoft escribió:
Tercero: Llevo mas de 20 años en programacion y muchas aplicaciones instaladas, tanto MSdos como win. JAMAS he tenido problemas con base de datos y son muchos los terminales trabajando al mismo tiempo en cada aplicacion..


Aqui quiero diversar un poco, sin afan de lucha ni capa ni espada, tal y como digo lineas o post's arriba, ..Se respeta tu manera de trabajar, a lo que se refiere jesus, es como tu lo has dicho llevas 20 años... eso significa que has tenido la oportunidad de realizar pruebas, aqui me asalta una duda, si el cliente tiene Linux o Mac, no haces diseños. o si?


bosoft escribió:
Cuarto: Ponte al dia. Btrieve es un motor de base de datos, pero si miras comparativas hechas por empresas expertas, las demas sql no tienen nada que hacer. Hoy en dia se llama Pervasive SQL. He usado alguna vez el sql y no me gusta, por lo tanto, como hay mas gustos que colores, no debo arrepentirme de eso. Y si a alguien le molesta simplemente que no mire..


..Se respeta tu comentario, mas las letras resaltadas, es desicion tuya y de nadie mas...


bosoft escribió:
En cuanto a lo del cafe, las bases de hoy en dia simplemente desconectan, es decir, usan el estilo billy gates. cuando no puedes, resetea y eso a mi no me va


pues si lo acabas de decir, usan el estilo de Bily Gates, pero SQL usa el estilo de Mac, Linux, Unix, Windows, J2EE, siendo SQL el paso universal para las bases de datos, bien no te parece y te sientes agusto con Pervasive SQL
en el siguiente enlace, viene la compartiva
http://www.it-analysis.com/technology/data_mgmt/content.php?cid=7704
es una base de datos Open Source, pero si te das cuenta, no compite con las que ya estan establecidas lo que si puedo decirte que Firebird y MySql son muy similares en cuanto el lenguaje SQL
Pervasive es de pago, firebird es gratis, asi com MySQL
y puedo darte mas comparativas, como bien dices... son 20 años

por este rumbo es muy mencionada una frase
"... para sobrevivir en este mundo, la clave es la evolución"

y el software que evolucione mas rapido sobrevive...

el motivo de esta discucion ha salido fuera de tema (off topic) principal, has planteado una solucion.. pero aqui viene un detalle la solucion solo la manejas tu, si la solucion que has dado a Laura tambien soluciona los diferentes sistemas operativos, Windows Linux, Mac, Unix, J2ee donde ella puede encontrar dificultad, ahora durante 20 años, no has pensado hacer un libro como "la Cara Oculta" no es mofa, ni nada por el estilo,

pero aun cuando casi llevo los mismos años, haciendo esto y revisando las bases de datos.. no habia encontrado a Pervasive, como una base de datos poderosa... como tu la mencionas, seria interesantes realizar una prueba para ver rendimientos y eficiencias dentro de una red. digamos como lo hace Firebird-Interbase
conexion local y conexion via internet al mismo tiempo...

si traemos 1 millon de registros (Censo de poblacion, por citar un ejemplo) de manera local y remota al mismo tiempo.. seria interesante comparar eficiencias...

Saludos Bosoft, recurda este foro, es para ayudar a gente que como laura empieza y pide una consulta, algo explicativo sin muchos terminos cientificos pero conciso que permita al que realiza el post, darse una idea... y una solucion...


y por ultimo, si a ti Te gusta Pervasive, como motor de base de datos, pues perfecto nadie discute nada... si a Jésus le gusta Interbase como Motor de Base de datos pues perfecto... a mi me gusta Firebird y tambien es perfecto... eso si como desarrolladores tratamos de no tener trabas con sistemas operativos, algo que si puedo decirte es que si SQL se invento, es por que los motores de bases de datos necesitaban EVOUCIONAR y lo hicieron a SQL

para ello el ejemplo de Pervasive que acopla a SQL...

Saludos....
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Esta respuesta no iva por ti Cesar. Tu y yo ya hablamos sobre el tema "cientificamente" y ni yo te dije que hacias mal, ni tu a mi.
Lo que no soporto es que venga alguien y te llame cualquier cosa y despues diga que es sin ofender. En mi ciudad corre un dicho que dice: ¿preguntar es ofender? suelen contestarte no. Pero la pregunta ¿usted es p.ta?. Eso precisamente es lo que me fastidia. Yo llevo poco tiempo en estos foros, pero jamas he ofendido ni por omosion a nadie y siempre he respetado las ideas de cada uno. Otra cosa es que intenten rebatir lo que aqui se explica, que cuando creo oportuno me uno, pero si no se de lo que se habla pues simplemente aprendo y no me meto.

Seguro que tendreis razones para decir que el sql es lo mejor, pero ya he dicho que a mi particularmente no me gusta. Supongo que por opinar eso no se me debe quemar en la hoguera.

No he mirado las ultimas comparativas, pero cuando pervasive iva por la version 7.9 les pegaba una paliza a las Db mas potentes y de largo.
¿es de pago? si pero a un precio muy asequible, si no te lias con 10000 users.

Por mi esta discusion esta cerrada, pero creo que alguien mas deberia plasmar aqui sus digamos ¿disculpas?

Saludos, bosoft.

Edito: La comparativa que has puesto no la entiendo. Yo he visto otras que "comparan" la funcionalidad con millones de registros y otras cosas. La busco y te la enlazo.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Re: Inventar otra vez la RUEDA? Responder citando

Ok, pero creo que fuiste muy a la ligera, y te saltaron los enojos antes de tiempo, en todo el texto que ha puesto Jésus (muy amable de su parte), no ha dicho mas que defender a Interbase, como tu lo has echo con Pervasive SQL


JesúsGandia escribió:

Bajo mi punto de vista, las bases de datos de escritorio, ya sea ACCES, BTRIEVE, CODEBASE, DBASE, PARADOX, ect. Son del pasado y solo son aconsejables si la aplicación en si son sencillas y bajo un solo usuario. Te aconsejo que leas unos cuantos libros sobre distinto tipos de base de datos y luego juzgues tu mismo.



JesúsGandia escribió:
Ten en cuenta que todo esto, al igual que haces tú, es solamente una opinión, y no tengo ánimo de molestar a nadie. Solo decirte algo más, si quieres programar bases de datos multiusuario deberías de plantearte migrar a algún motor de SQL. Es el presente y futuro de las Bases de Datos. También decir que BTRIEVE muestra su potencia cuando actúa como monopuesto y que si la comparas con un motor SQL, perdería en rapidez de CONSULTAS bajo las mismas condiciones de Hardware.


JesúsGandia escribió:
En cuanto a la persona que ha comenzado este post yo solo le diría:
Como parece que estas manejando INTERBASE te convendrías echar un vistazo en la ayuda sobre el componente IBEVENTS. De seguro que encuentras lo que estás buscando.


saludos...
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Re: Inventar otra vez la RUEDA? Responder citando

Ya he dicho que no quiero discutir mas sobre el tema, pero...

JesúsGandia escribió:
Creo que bosoft quiere volver a inventar la rueda.


eso parece

Y por cierto yo defendi btrieve aplicando ejemplos, no mandando a alguien a la edad de piedra ni mofandome de sus ejemplos.
Ya digo que me molesto como lo ha hecho, para despues decir que no quiere ofender. Y ya no sigo.

Saludos, Bosoft.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Perdón. Responder citando

Veo que la expresión ‘Creo que bonoft quiere volver a inventar la rueda’ ha sido la causante de este mal entendido.
Parece ser, que a bonoft no le ha sentado nada bien, pues bien, aquí mismo quiero pedir disculpas a la persona implicada.
Como ya dije, mi intención no era ofender a nadie, auque a veces es inevitable que alguien se sienta molesto. Estoy de acuerdo con Bonoff de que mi comentario estaba fuera de lugar. En adelante tendré mas cuidado con mis comentarios. Embarassed

Y puesto que Laura ya parece haber solucionado su duda, creo que este tema queda zanjado, dado que, ya me he disculpado públicamente.
Saludos a todos.
_________________
Muchos hombres no se equivocan jamás porque no se proponen nada razonable.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Visitar sitio web del autor
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.