FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Yo nada más quiero acotar que jamás he utilizado rutas en notación UNC directamente.
Instalo la aplicación en una carpeta "sistema" con una subcarpeta "tablas" para las tablas: Código:
C:\ |__sistema |__ tablas S: --> \\servidor\sistema (aquí sí UNC pero vía Windows no en código) y configuro el alias del bde para que apunte a S:\tablas. En el "servidor" configuro el alias directamente a c:\sistema\tablas. La aplicación, ahora sí el código, contiene una componente TDataBase que, además del alias, inicializo así:
Nada de agregar una componente TSession que para eso Delphi da una por defecto. Entonces el directorio Net es el mismo que donde está el ejecutable. No es exactamente lo que recomienda el artículo pero huelga decir que accedo sin ningún problema desde el mismo "servidor" y desde cualquier "cliente" sea éste Win9x, Win2k o WinXP. El único problema que ocasionalmente se presenta es el de "Index Out Of Date" pero sólo cuando por alguna razón se cierra el Windows del "servidor" "a la mala" estando tablas abiertas. // Saludos Última edición por roman fecha: 13-07-2004 a las 19:53:30. Razón: Etiqueta mal colocada |
#2
|
||||
|
||||
Roman, solo hay un detalle que se me escapa, en esta línea
el Database.Directory, lo asignas tú en código, en diseño.... Yo primero confguro el Session y despues el Tdabase, por tanto, esa propiedad me devuelve la cadena vacia al consultarla Saludos |
#3
|
||||
|
||||
Cita:
Database1.Connected := true; Luego de esto, Directory debe ya contener la ruta a la que apunta el alias. // Saludos |
#4
|
||||
|
||||
Hola de nuevo:
Hartito de hacer pruebas llego a la conclusión de que los 2 Hordenadores deben estar encendidos para que funcione todo bien. Todas las pruebas tienen la misma conclusión: "la red debe estar habilitada y funcionando para que windows permita el acceso." (Parece lógico, pero no lo fue para mi en alguna situación) Básicamente es lo que decíais en los primeros mensajes, pero mi ignorancia no me dejaba ver el por qué de todo eso, así que me he recalentado las neuronas, y me ha servido para entender esa "nubecita" que era el BDE, localshare y algunas cosas más sobre la red. El hecho: nada más apagar el ordenador "cliente" aparece en el "servidor" el cartelito de "Cable de red desconectado", y a partir de aquí toda la red se inhabilita. Desde internet explorer puedo acceder a \\WinXP, donde aparece mi carpeta compartida, pero al intentar entrar en ella dice: Cita:
Desde mi programa, accediendo desde el "servidor" con rutas UNC el error que da es: Cita:
Si en el "servidor" uso el NetFileDir y DatabaseDir con rutas UNC, y los 2 ordenadores de la red están encendidos todo va de miedo, al intentar bloquear un mismo registro en ambos ordenadores, sale un messagebox programado indicando que ya está bloqueado por el usuario: nombre_usuario_de_mi_programa Todo correcto!!! ---------------------------- 3ª PRUEBA -------------------------------- Si en el "servidor" uso el NetFileDir y DatabaseDir con rutas locales, cuando entra el "cliente" con rutas UNC, los bloqueos de registros no funcionan correctamente, es decir, me deja bloquear el mismo registro en ambos ordenadores a la vez, en este caso "peculiar", El registro queda con los datos del último usuario que grabó el registro, además da algún error físico en las tablas (missing .val de alguna tabla, corrupt index, index out of date). Cuando digo error físico, me refiero a "Physical Data Corruption" que los mencioné en mi primer mensaje. A mí personalmente me ha dado estos: Corrupt table/index header. Corrupt index. Corrupt or missing .VAL file. BBDD corrupta, echa mano de la copia de seguiridad Caaaaatalina (Corrupt index, puede solucionarse borrando los indices y volviendolos a crear... pero si tienes un Backup, es más cómodo tirar de él). ---------------------------- 4ª PRUEBA -------------------------------- Configurando la red Local manualmente: - Instalación por "asistente de red" por más que quiera hacerlo a mano, Windows XP Professional se mete en medio, (estupenda carabina no??) - Despues, Añado direcciones ip: 192.168.0.X y mascara de subred 255.255.255.0 a los dos Protocolos TCP/IP de red, donde "X" es 1 para el "servidor" y 2 para el "cliente" Código:
Pruebas realizadas desde la consola de Winxp, ("servidor") Ping Winxp // si funciona en todos los casos. net view winxp //siempre funciona y muestra la carpeta compartida. Ping 192.168.0.1 //"Host de destino inaccesible" si el otro ordenador de la red está apagado Ping 192.168.0.1 //da valores correctos si el otro ordenador de la red está encendido Código:
\\127.0.0.1\sistema \\winxp\sistema el nombre del equipo en el panel de control, sistema es "winxp" \\192.168.0.1\sistema la direccion IP asignada en el protocolo tcp/ip es esa misma. ---------------------------- 5ª PRUEBA -------------------------------- Mapeando una unidad. Según mis pruebas, sirve para quitarte el engorro de rutas UNC al configurar los "clientes", pero al fin y al cabo estas usando rutas UNC. No me ha quedado claro el uso de ExpandFileName, revisando esa funcion y sus relacionadas, yo hubiese usado intuitivamente ExpandUNCFilename, el cual traduce S:\tablas a \\servidor\sistema\tablas en los "clientes"; en el "servidor" el uso de rutas locales no me cuadra jejejeje. Roman tu configuración es muy interesante, pero son demasiados parámetros para contrastar, Creación de Alias, BDE, Sessiones, Tdabase, Directorios....Que tengan encendidos los 2 ordenadores o que compren otro ordenador para tenerlo de "servidor exclusivo". PD: Gracias por decirme que existen ExpandFileName y ExpandUNCFilename Agradezco toda la información que me han proporcionado, sin ellas, no sabía ni por donde empezar a recalentarme las neuronas. Espero que toda esta parrafada también le sirva a alguien más. Saludos y a ver que nos propone el windows Loghorn (o como se llame) |
|
|
|