PDA

Ver la Versión Completa : applicacion en red


Jheysson13
02-12-2006, 23:16:35
saludos a todos.
antes de todo debo de explicar que he terminado mi applicacion en delphi,
se trata de un sistema universitario completo; desde el mantenimiento de estudiante hasta los pagos de los maestros y usuarios,etc. en fin el programa
ya esta terminado y solo me falta un ultimo paso, que es ponerlo a funcionar en una pequeña red.

en realidad no se ni tengo idea de como puedo hacerlo, pense que tan solo con poner la carpeta del programa compartida me funcionaria, pues esto solo me daba un error en las demas pc.
luego instale el bde en las otras pc ya que la unica que tiene delphi instalada es la mia, pense que si instalaba el BDE funcionaria, pero me daba el mismo error de window(es el error que dice enviar o no enviar errores etc, bueno ustedes sabran).

ahora pregunto es que tengo que agregar algun componente que yo desconosca que se utilize para applicaciones en red. si esto es asi porfavor me podrian ayudar. si no me explique lo suficientemente bien hacermelo saber porfavor.

gracias de antemano y salu2.:)

Lepe
03-12-2006, 00:56:57
¿qué base de datos usas? Paradox, interbase, ¿?

Saludos

Jheysson13
03-12-2006, 02:39:09
uso tablas en paradox , no sabia que eso tenia importancia:confused:.

pvizcay
03-12-2006, 04:54:59
no es lo mismo desarrollar una aplicación para que funcione monousuario que para que funcione en red.. si tenía que trabajar en red, eso es un requerimiento del sistema y tu terminastes el sistema sin siquiera pensar en uno de los requerimientos principales, no una buena idea.. por cierto no te puedo ayudar no se nada de paredox te recomiendo firebird
suerte

AzidRain
03-12-2006, 05:37:23
Pues no es por desanimarte, pero como nos dice pvizcay me parece que erraste el diseño desde el principio. No puedes diseñar pensando que lo va a usar un solo usuario y al final pretender que lo mismo sirva para que lo usen varios, y mas en tablas planas donde no tienes un controlador que te ayude con el trabajo.

Obviamente esto no quiere decir que tu sistema no funcione en una red, lo puedes hacer si defines una unidad "virtual" en la pc donde se instale que apunte a otra unidad en un equipo de la red, pero solamente un usuario podrá acceder a los datos cada vez a menos que solo sean capturas en cuyo caso si podrian hacerlo.

Esto obedece al famoso problema de la concurrencia. Las tablas planas no son mas que simples archivos por lo que 2 usuarios no pueden tratar de escribirlo al mismo tiempo so pena de provocar datos corruptos...

Si nos dieras mas datos...igual y me adelanté

Lepe
03-12-2006, 13:06:08
Busca por el foro la palabra NETFILEDIR, es el punto clave para hacer que paradox funcione en red, de ahí apareceran muchos resultados.

Como te han dicho la concurrencia es importante en el diseño. Lo que tienes que pensar, sobre todo en los Insert y Post de las tablas es que varios usuarios pueden hacerlo casi al mismo tiempo, por tanto debes buscar un método para que nunca colisionen los datos.

Un ejemplo con dos usuarios A y B. A le da a Insertar un nuevo alumno ¿qué valor se le da a su clave primaria? (dependerá de como lo hayas implementado), El usuario B le da a insertar (A todavía no ha guardado los datos), Ahora graban los cambios A y B ¿que valor tendrán la clave primaria de ambos? ¿y si A y B están dando de alta al mismo alumno? ¿se duplicará la información?

Saludos

Lepe
03-12-2006, 13:22:05
Para el error que te da "Enviar errores a microsoft" nosotros no sabemos la respuesta, el programa lo has hecho tú :D. Tú sabrás si has usado componentes de terceros (activex, ocx, etc). También dependerá del Sistema operativo donde lo hayas desarrollado, (un XP Professional no es lo mismo que un Home) tienen funcionalidades recortadas, quizás una misma rutina no está disponible en otros sistemas operativos.

Normalmente, usando los objetos Tdatabase, Ttable, tquery, tdatasource, DBgrids, etc no dan problema, puede que por error hagas uso de la unidad QDialogs en lugar de Dialogs, eso puede dar fallos, porque QDialogs es para aplicaciones CLX (linux por decir algo).

Antes de nada ve a Projects -> options -> linker (no recuerdo bien), busca una casilla que dice "build with runtimes packages" (debe estar en blanco).
En compiler, estudia que significa cada una de las opciones (F1 basta) y activas cada una según veas).

Si continúa fallando: haz un ShowMessage cuando pases por tal o cual rutina, a ver si es en la inicialización de la aplicación, o es en alguna ventana en particular. Quizás el hilo "debuguear en tiempo de ejecución (http://www.clubdelphi.com/foros/showthread.php?t=25840&highlight=lpjcldebug)" te sirva, no sé.

¿Usas el XPManifest? ¿qué versión de delphi usas?, ¿en qué sistemas operativos va a estar instalado y en cual desarrollaste?

Saludos y suerte

Jheysson13
03-12-2006, 22:30:57
Rayos, parece que no es tan facil como pensaba. en realidad me habia percatado de la forma de insertar y grabar por dos usuarios almismo tiempo y eso se puede decir que lo tengo controlado como dice lepe, pero no tenia idea de que trabajar con paradox en red era tan complicado.

en cuanto a la version de delphi es la 7 y si estoy usando XPManifest pero estoy seguro que no es causa de errores pues lo hacia antes de usarlo.

de todos modos usare las recomendaciones que me dan e investigare mas sobre las applicacines en red.

gracias de todos modos por sus ayudas.
salu2.

AzidRain
04-12-2006, 05:07:41
Como te decia puedes echarle un ojo a "La cara oculta de Delphi", trae un capítulo dedicado a estos menesteres y con ejemplos muy entendibles muy al estilo de Marteens. Seguro te servira

Jheysson13
05-12-2006, 04:19:21
gracias a todos y vere como me va. de lo que estoy seguro es que ya me veran por ahi preguntado sobre el tema y esperom me puedan ayudar, pues creo que tendre que aprender a usar bases de datos por mi cuenta y por supuesto con la ayuda de la comunidad.

gracias y salu2

roman
05-12-2006, 07:17:10
si tenía que trabajar en red, eso es un requerimiento del sistema y tu terminastes el sistema sin siquiera pensar en uno de los requerimientos principales, no una buena idea..

Pues no es por desanimarte, pero como nos dice pvizcay me parece que erraste el diseño desde el principio. No puedes diseñar pensando que lo va a usar un solo usuario y al final pretender que lo mismo sirva para que lo usen varios, y mas en tablas planas donde no tienes un controlador que te ayude con el trabajo.

no tenia idea de que trabajar con paradox en red era tan complicado.


A mi me van a perdonar pero sinceramente están exagerando y de paso asustando a Jheysson.

Trabajar Paradox en red es muy fácil y la planeación de un sistema monousuario o multiusuario con paradox es prácticamente lo mismo porque el BDE hace casi todo el trabajo sucio.

Que no sea recomendable usar paradox por muchas otras razones, voy de acuerdo, tiene limitaciones y ya es una tecnología caduca.

Pero hacerlo trabajar en red no tiene mayor ciencia que apuntar nuestro NETFILEDIR correctamente.

El BDE se encarga de todas las colisiones. Lo que menciona Lepe de la llave primaria no veo por qué ha de ser un problema mayor. Por un lado se puede usar un autoincremental para que el BDE se encargue de asignarlo correctamente. Si se trata de una llave natural pues se maneja el evento OnPostError pero nada que requiera un rediseño de la aplicación. Si se trata de un correlativo entonces sí habrá un poco más de trabajo pero nada que haga temblar al mundo.

// Saludos

Lepe
05-12-2006, 12:05:23
roman, estamos de acuerdo en que no nos pondremos de acuerdo ;).

Tú abogas por usar paradox para sistemas de escritorios, yo sin embargo utilizaría Firebird embebido (http://www.clubdelphi.com/foros/showpost.php?p=65179&postcount=2), no sé... me siento más libre, con paradox me siento acorralado y pensando que estoy reinventando la rueda en cada rutina que hago.

Por eso me gustan estos foros, varias personas pueden opinar sobre un mismo tema aún sin estar de acuerdo, eso enriquece el propio hilo.

Mi punto de vista: Cuando alguien empieza en paradox, normalmente no sabe nada del NETFILEDIR, TDatabase, Tsession, poco de SQL, [...] y se encontrará desconcertado ante los problemas que le surjan. En este sentido, en FB/Interbase/Mysql se tienen que aprender los conceptos primero, y allí se hablan de esos foragidos, ayuda a entender mejor el proceso y "estar preparado antes de que los problemas lleguen". O al menos saber que existe el SQL y desde el cual se pueden atacar no pocos problemas.

¿tendrá futuros problemas en un SGBBDD? Seguro, es su primera vez, pero al menos cuenta con más potencia para salir de un apuro.

Saludos

Spynosa
05-12-2006, 14:37:09
Mira este articulo (http://www.terra.es/personal/alksoft/delphi/articulo/paradox.htm) seguro que te aclara algo

roman
05-12-2006, 18:43:06
Tú abogas por usar paradox para sistemas de escritorios

A mi me da por que no siempre leemos bien. Yo nunca he abogado por hacer sistemas de escritorio con Paradox o Access. Es más, creo que jamás volveré a usar Paradox y no le recomendaría a nadie que empiece un sistema nuevo a usarlo.

Si se trata de una aplicación pequeña/mediana en la que se quiere algo con una curva suave de aprendizaje yo optaría por MySql y si se requiere algo más robusto quizá optaría por Firebird basado en las opiniones que ustedes han vertido en múltiples ocasiones.

Pero si alguien llega con un sistema ya hecho o avanzado en Paradox, no entiendo por qué animarlo a que rehaga todo o asustarlo diciéndole que Paradox esto o aquello cuando no es ni esto ni aquello.

Lo primero que Jheysson13 mencionó en este hilo fue que el sistema «ya esta terminado y solo me falta un ultimo paso, que es ponerlo a funcionar en una pequeña red».

¿Qué debió haber pensado desde un principio que el sistema iba a funcionar en red? Puede ser. Pero de ningún modo es una tarea imposible. Paradox tiene muchas limitaciones y desde luego no tendrá todos los beneficios de un C/S real, pero lo que hace lo hace bien y en Paradox, a diferencia de lo que mencionaron antes, es prácticamente lo mismo programar monousuario que multiusuario, así que tampoco es que haya comenzado por una vía totalmente equivocada. Noten además que él habló de una pequeña red. Los términos clave aquí son: ya acabé y red pequeña.

// Saludos

Paoti
06-12-2006, 00:19:01
Si, hasta yo me habia asustado.



no esta todo perdido, y el sistema va a funcionar,


como te coemntaron arriba Jheysson13, busca el el histórico de foros, y en google, Paradox en RED.



Yo tuve un problma similar con paradox, maquinas windows XP, clientes windows 98, y era un problema, ya que una vez a la semana habia indices corrompidos, ya hasta el personal sabia utilizar sysutils32 y paradox table repair.

pase todo el sistema a Firebird, no hubo mucho cambio en las pantallas, solo con el cambio de componentes.

Jheysson13
08-12-2006, 17:29:40
parece que el tema obtubo mas respuestas de lo que esperaba, y hay muchas discusiones del mismo. A mi entender segun lo que he visto claro esta que paradox ya es cosa del pasado y en verdad si he tenido con los indices coruptos, Blod modificado y cosas asi. pero ya que me aclaran que si puedo poner mi sistema en red voy a tratar de salvar lo que he hecho y luego tratar de empezar a usar bases de datos.

gracias a todos por sus respuestas y aclaraciones.
salu2 para todos y espero que este hilo le sirva a muchos para tener una idea de como deben empezar a trabajar en sus applicaciones de red.:):)

roman
08-12-2006, 17:40:18
Eso sí, leete bien el artículo que te mencionó Spynosa, porque es fundamental tener bien puesta la configuración.

// Saludos