Respuesta
Herramientas Buscar en Tema Desplegado
post #1 (permalink) Antiguo 07-mar-2010, 13:48
Predeterminado Programar para red
Bueno, mi intención es hacer un programita sencillo en Pascal con un simple archivo como base de datos y poder modificar/visualizar esa base de datos de 2 PC (en red, obviamente) a la vez. Ya creé un recurso de red en ambas, pero cuando lo ejecuto en una, si bien me permite ejecutarlo en la otra, cuando intento ver o modificar algo de la base de datos el programa se cierra. Lo hice en Pascal. Necesitaría saber más o menos como tengo que hacer para poder modificarlo en las 2 a la vez. Saludos.
Usuario Registrado
Fecha de Ingreso: mar-10
Mensajes: 13
Gracias dadas: 0
Agradecido 0 veces en 0 Mensajes
Canalla_Rosario está desconectado
Responder Citando
post #2 (permalink) Antiguo 07-mar-2010, 20:50
Predeterminado
mmmm cual es la base de datos? a que le llamas recurso de red?es una unidad de red windows?o lo estas haciendo en un linux?te tira algun error la aplicacion antes de cerrarse?

saludos.
Usuario Novato
Fecha de Ingreso: sep-09
Mensajes: 52
Gracias dadas: 0
Agradecido 0 veces en 0 Mensajes
mflores está desconectado
Responder Citando
post #3 (permalink) Antiguo 07-mar-2010, 22:50
Predeterminado
La base de datos es simplemente un archivo .dat . El recurso de red me refiero a la unidad de red que creás bajo XP haciendo click derecho en Mi PC y ponés "Conectar a una unidad de red". Y antes de cerrarse no tira error, o no puedo verlo.

Saludos.
Usuario Registrado
Fecha de Ingreso: mar-10
Mensajes: 13
Gracias dadas: 0
Agradecido 0 veces en 0 Mensajes
Canalla_Rosario está desconectado
Responder Citando
post #4 (permalink) Antiguo 08-mar-2010, 00:43
Predeterminado
podrias poner uun fragmento del codigo que utilizas para abrir el archivo? y lo que si dudo mucho es puedas escribir desde la dos maquinas a la vez, por que por lo general todos lo arhivos se bloquean cuando lo abrirs para escritura, apenas abrirs el programa haces un reset y esperas que el usuario elija que leer o escribir, tambien podes hacer un binario donde no captures los errores del OS ,asi cuando se cierra el programa te va a tirar algune error. toy medio oxidado en pascal pero bue je.

saludos.
Usuario Novato
Fecha de Ingreso: sep-09
Mensajes: 52
Gracias dadas: 0
Agradecido 0 veces en 0 Mensajes
mflores está desconectado
Responder Citando
post #5 (permalink) Antiguo 08-mar-2010, 07:18
Predeterminado
Begin
Assign(gnom,'z:\anexosg.dat');
{$I-}
reset(gnom);
If ioresult = 2 then Rewrite(gnom);
{I+};

Ahí estaría como lo abro. Ambas PC tienen la unidad "Z" como unidad de red y acceden sin problemas, pero de a una a la vez. ¿Entonces será imposible editar el archivo en ambas a la vez? Saludos...
Usuario Registrado
Fecha de Ingreso: mar-10
Mensajes: 13
Gracias dadas: 0
Agradecido 0 veces en 0 Mensajes
Canalla_Rosario está desconectado
Responder Citando
post #6 (permalink) Antiguo 08-mar-2010, 15:56
Predeterminado
Bueno, primero hacete si queres un binario pero sin el {$I-}{I+} asi la aplicacion mostrara por pantanlla la exception, y si llega a ser que el problema es que se bloque el archivo proba poner un TIMEOUT en un while donde tratas de hacer el reset hasta q este pueda abrir el archivo.

saludos.
Usuario Novato
Fecha de Ingreso: sep-09
Mensajes: 52
Gracias dadas: 0
Agradecido 0 veces en 0 Mensajes
mflores está desconectado
Responder Citando
post #7 (permalink) Antiguo 09-mar-2010, 08:33
Predeterminado
¿Cómo hago un binario sin el {$I}? ¿Y el timeout cómo lo pongo? ¿Así: While not timeout?

Saludos gracias.
Usuario Registrado
Fecha de Ingreso: mar-10
Mensajes: 13
Gracias dadas: 0
Agradecido 0 veces en 0 Mensajes
Canalla_Rosario está desconectado
Responder Citando
post #8 (permalink) Antiguo 09-mar-2010, 13:03
Predeterminado
el archivo se cierra simplemente porque al abrirlo en una pc este archivo se bloquea para las demas por eso cuando lo quieres abrir con la otra pc se cierra un .dat no es una base de datos utiliza un gestor de base de datos acces podria ser y pascal ya esta un poco atrasadito para ello si lo quieres hacer sencillo y rapido te recomiendo le eches un ojito a Flex es excelente y solo programas una vez y lo utilizas en tantos clientes como descees:
Desarrollo Tecnologia y algo mas
Usuario Registrado
Fecha de Ingreso: mar-10
Edad: 24
Mensajes: 3
Gracias dadas: 0
Agradecido 0 veces en 0 Mensajes
Shadonwk está desconectado
Responder Citando
post #9 (permalink) Antiguo 09-mar-2010, 20:24
Predeterminado
Pascal no esa para nada atrasado, todo de pende del compilador que uses como por ejemplo el free pascal compiler, que tiene liberias para trabajar con muchas bases de datos y ademas hay aplicaciones como Lazarus que es un clon de delphi para linux basado en este compilador, en fin, lo que es obsoleto es usar un .dat para tener alguna coleccion de datos, lo ideal es usar un access, pero...... yo no soy de los que dicen "no hay que reinventar la rueda ", a mi me parece bien que se quiera trabajar con archivos de forma mas directa, como en este caso.
Para el Binario solo saca los {$I} del codigo fuente y listo.

te quedari algo asi:
var timeout:integer;
Begin
Assign(gnom,'z:\anexosg.dat');
{$I-}
timeout:=999999;
reset(gnom);
while((ioresult<>2)and(timeout<>0))Do
Begin
reset(gnom);
Dec(timeout);
End;

If (timeout<>0) then Rewrite(gnom)
else write('no se puede abrir el arhivo');
{I+};

o algo asi, tambien podrias usar la funcion delay(), la idea es esperar hasta que el archivo sea desbloqueado para luego, poder abrirlo.

saludos.
Usuario Novato
Fecha de Ingreso: sep-09
Mensajes: 52
Gracias dadas: 0
Agradecido 0 veces en 0 Mensajes
mflores está desconectado
Responder Citando
post #10 (permalink) Antiguo 10-mar-2010, 23:26
Predeterminado
Uso .dat porque recién estoy empezando a usar archivos, y creo que es lo más fácil. Igual ésto es sólo una prueba y una duda que quiero sacarme.

Entiendo lo que pretendés con ese código, después lo voy a probar, pero ¿qué es "DEC(TIMEOUT);"

Saludos, gracias.
Usuario Registrado
Fecha de Ingreso: mar-10
Mensajes: 13
Gracias dadas: 0
Agradecido 0 veces en 0 Mensajes
Canalla_Rosario está desconectado
Responder Citando
Respuesta

Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Ir al Foro


La franja horaria es GMT -3. Ahora son las 07:29.