Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-04-2006
kia kia is offline
Miembro
 
Registrado: jul 2003
Posts: 78
Poder: 21
kia Va por buen camino
Question Dos aplicaciones y sola base de datos..?

Hola a todos.
Como novata llevo un para de meses, hice un programa con D5, Wxp, y tablas planas paradox. Lo ejecuto en un solo ordenador, todo bien. Ahora debido a que funciona me piden que lo ponga en dos ordenadores mas.
Habia pensado en que todos los ordenadores emplearan la misma base de datos que hay en la primera instalción, direccionando los otros ordenadores hacia dichos datos, como se podria hacer ? (con los alias...).Gracias
__________________
Nadie nace enseñado, pide y se te dara.
Responder Con Cita
  #2  
Antiguo 14-04-2006
amadis amadis is offline
Miembro
 
Registrado: may 2005
Ubicación: San José, Colón, Entre Ríos, Argentina
Posts: 315
Poder: 20
amadis Va por buen camino
Deberia funcionar

Eso te tendria que funcionar muy bien. (buena deduccion)

Lo que tienes que hacer es modificar los 2 nuevos alias.

Entras al BDE en las 2 nuevas maquinas y modificas tu alias de la BD, cambias el path por la ruta en la red de la base PRIMERA que esta funcionando.

el path te queraria algo así

PATH: -> \\NOMBREDEMAQUINA\C\Archivos de Programa\Miprograma\BD

Porsupuesto que deberas escribir el nombre de la maquina en la red y la ubicacion de tu BD ya sea en el disco C, D E etc.

Despues tendras que contemplar los errores que se producen al abrir un mismo registro desde 2 maquinas a la vez y personalizar tus errores!

Suerte con eso y Felices Pascuas
Responder Con Cita
  #3  
Antiguo 15-04-2006
kia kia is offline
Miembro
 
Registrado: jul 2003
Posts: 78
Poder: 21
kia Va por buen camino
Post Mi agradecimiento.el path.

Hola Amadis.
He tenido algún error por que en algun lugar de mi programilla en vez del alias figura la ruta.
He captado la modificación del BDE, y funciona no tego errores con XP, ya que sale un aviso de aplicación ocupada. Pero si en W98.
Kaikatsu por tu respuesta.
__________________
Nadie nace enseñado, pide y se te dara.
Responder Con Cita
  #4  
Antiguo 15-04-2006
amadis amadis is offline
Miembro
 
Registrado: may 2005
Ubicación: San José, Colón, Entre Ríos, Argentina
Posts: 315
Poder: 20
amadis Va por buen camino
Thumbs up raro.

Asegurate de que en el programa esten la base de dato y las tablas asociadas al ALIAS.

Entonces unicamente desde panel de control --> BDE modificas la ruta de tu alias y listo.

Suerte y felices pascuas
Responder Con Cita
  #5  
Antiguo 25-04-2006
Avatar de Maury Manosalva
Maury Manosalva Maury Manosalva is offline
Miembro
 
Registrado: ago 2005
Posts: 101
Poder: 19
Maury Manosalva Va por buen camino
Ayuda con concurrencia de datos

Hola envio un archivo escrito por JVC para este tipo de conexion, yo la estoy utilizando y esta muy buena, pero hay que tener en cuenta hacer los cambios en los formularios, para que cuando haya concurrencia no aparezcan key violation o registros en blanco.

Adjunto Archivo


Maury manosalva
Bucaramanga, colombia.
Responder Con Cita
  #6  
Antiguo 26-04-2006
kia kia is offline
Miembro
 
Registrado: jul 2003
Posts: 78
Poder: 21
kia Va por buen camino
Conexion efectuada

Ante todo gracias a todos.
Los ordenadores pueden utilizar la Base de datos con sus tablas que estan en uno de ellos, solo he cambiado el path del alias de los ordenadores llamados "terminales". Lo efectuo con un formulario donde configuro dicho path. Y va bien hasta cierto punto. Los accesos a datos se efectuan sin problemas y sin errores pero aviso los datos no se actualizan en forma real, ya que para que sean visibles se deben reindexar (actualizar indices) sino no aparecen, aunque estan grabados en disco y si el terminal es lento peor. Se pueden producir errores en los datos (paradox). Por ello seguire probando. Salu2 Kia
__________________
Nadie nace enseñado, pide y se te dara.
Responder Con Cita
  #7  
Antiguo 26-04-2006
Avatar de Colgueit
Colgueit Colgueit is offline
Miembro
 
Registrado: abr 2006
Ubicación: Lanzarote, España
Posts: 91
Poder: 19
Colgueit Va por buen camino
Base de Datos Paradox en Red Lan

Hola,

Yo ando con el mismo problema que aquí se plantea, pero soy un poco novato y no se hacer casi nada de lo que decis. Tengo unas preguntas que espero alguna persona amable me las responda:

¿Como cambio la ruta de los alias de los otros ordenadores sin tener delphi instalado?

¿necesitare instalar la base de datos en los demas ordenadores no? ?eso como lo hago?

'Kia' me puedes pasar el formulario que has hecho para cambiar los alias? me sería d mucha ayuda.

Gracias de antemano

Última edición por Colgueit fecha: 26-04-2006 a las 12:31:28.
Responder Con Cita
  #8  
Antiguo 27-04-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
No solo hay que cambiar el alias:

- Que todos los ordenadores apunten al .net del servidor en una carpeta del servidor. (session.netfiledir). Buscar en el foro por TSession o Session Paradox. Hay mucho sobre el tema.

- Quitar la cache en segundo plano de windows XP
Código Delphi [-]
procedure TForm1.btCacheSegundoPlanoClick(Sender: TObject);
var r:TRegistry;
begin
//HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\FileSystem\
//   DriveWriteBehind = 00 (DWORD)
Memo1.Lines.Add('');
Memo1.Lines.Add('CACHE DE ESCRITURA EN SEGUNDO PLANO');
Memo1.Lines.Add('-----------------------------------');
Memo1.Lines.Add('Desactive la cache en los ordenadores clientes.');
Memo1.Lines.Add('');
  r := TRegistry.Create;
  r.RootKey := HKEY_LOCAL_MACHINE;
  if r.openkey('\System\CurrentControlSet\Control\FileSystem\',False) then
  begin
    if r.ValueExists('DriveWriteBehind') then
    begin
      Memo1.Lines.Add('valor: '+ IntToStr(r.Readinteger('DriveWriteBehind')));
      Memo1.Lines.Add(' Cero es interpretado como "cache desactivada"');
    end
    else
      Memo1.Lines.Add('La cache se encuentra activada');
  end
  else
  begin
    Memo1.Lines.Add('No existe ruta de registro para la cache');
    Memo1.Lines.Add('RUTA: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\FileSystem\');
  end;


end;

- Configurar el LOCAL_SHARE tanto en el servidor como en los clientes.Buscar LOCAL_SHARE en los foros, hay una rutina para ello.

Aquí para instalar el BDE

La base de datos no tienes que copiarla, sino hacer que todos los ordenadores apunten al servidor mediante el alias y el netfiledir.

kia, ¿haces un ttable.Flushbuffers en el evento afterpost de cada tabla??, si no lo haces no se graban a disco los cambios, se mantienen en el buffer. Si quieres que aparezcan los cambios, debes poner el Query.RequestLive a true.



Saludos.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 27-04-2006 a las 08:53:19.
Responder Con Cita
  #9  
Antiguo 27-04-2006
Avatar de Colgueit
Colgueit Colgueit is offline
Miembro
 
Registrado: abr 2006
Ubicación: Lanzarote, España
Posts: 91
Poder: 19
Colgueit Va por buen camino
Antetodo 'Lepe' muchas gracias por la respuesta.

Ya configuré el BDE en la otra maquina y he cambiado el alias de la maquina terminar para que apunte a la del servidor y ya me funciona!
No he necesitado hacer lo del TSession, ni lo de la caché , ni lo del LOCAL_SHARE. No se si debería hacer algo de esto pero me funciona correctamente sin haberlo hecho.
También he puesto el table.Flushbuffers para asegurarme que me realiza los cambios.

Hasta ahora casi todo bien, y digo casi porque los cambios que realizo en una maquina no se visualizan en la otra, solo cuando reinicio el programa ya si puedo visualizarlos. Dices que para que aparezcan los cambios se ponga Query.RequestLive a true pero eso es para las consultas, ¿como visualizo los cambios en tiempo real de una tabla, si por ejemplo tengo un DBGrid, añado una fila en una maquina y se muestre en la otra maquina?.

Una última cosa, la configuración del BDE la hago manualmente , pero me gustaría que el usuario lo pudiera hacer facilmente con un formulario o algo así, para así el mismo poder configurar la red ¿Como se hace esto? o ¿alquien tiene o sabe de un programa que haga esto?.

Un saludo y gracias.
Responder Con Cita
  #10  
Antiguo 27-04-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Reindexar los índices es necesario cuando la configuración del BDE,SESSION y demás parámetros no están bien configurados o cuando hay un corte de luz.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #11  
Antiguo 27-04-2006
Avatar de Colgueit
Colgueit Colgueit is offline
Miembro
 
Registrado: abr 2006
Ubicación: Lanzarote, España
Posts: 91
Poder: 19
Colgueit Va por buen camino
Conseguir Caerques

Hola,
He estado mirando en el foro acerca de la reindexación de índices, por lo que veo lo mas apropiado es usar Caerques; Pero lo he buscado en todas partes y no lo encuentro; En teoría estaba en esta página en la sección ejemplos pero ésta sección dejo de funcionar hace tiempo.
Lepe ¿me puedes pasar el Caerques? o cualquier persona que lo tenga que me lo pase porfavor, ponedlo en el mensaje como adjunto o maddadlo a mi email please.

Gracias otra vez!

Última edición por Colgueit fecha: 27-04-2006 a las 15:34:57.
Responder Con Cita
  #12  
Antiguo 27-04-2006
kia kia is offline
Miembro
 
Registrado: jul 2003
Posts: 78
Poder: 21
kia Va por buen camino
Unhappy Siguiendo el hilo

Hola de nuevo
Una lleva un mes detras de paradox para conseguir una base tres ordenadores.
Siento decirte Colgueit que Lepe tiene razón, si no aseguras las SESSION perderas datos por un tubo, hablo por que me ha pasado.
Configurar el Bde tocando el registro para mi a sido muy difilcultoso y delicado para una novata como yo. Pero entiendo que es necesario.
Ademas todavia hay mas cosas que Lepe no menciona pero segun el sistema Operativo de la maquina el Bde debe configurarse de un manera o de otra.
Yo abandone por las perdidas de datos y tiempo. Trato de hacerlo con Interbase, y volver a empezar. De verdad a todos Gracias. Kaikatsu, Kia.
__________________
Nadie nace enseñado, pide y se te dara.
Responder Con Cita
  #13  
Antiguo 27-04-2006
Avatar de Colgueit
Colgueit Colgueit is offline
Miembro
 
Registrado: abr 2006
Ubicación: Lanzarote, España
Posts: 91
Poder: 19
Colgueit Va por buen camino
Hello again,

Pues tendré en cuenta el hacerlo con Interbase la proxima vez pero ahora ya es tarde para cambiar, ya tengo casi terminado el software y no es plan...

Ya aprobecho para repetir 2 cosas que dije antes:

1) Para 'Kia': Mencionabas antes que habías creado un formulario para cambiar el path del alias, me puedes explicar como se hace o lo que sería mejor me lo puedes pasar?

2) Para Todos : Alguien me puede pasar el Caerques? este estaba en la sección ejemplos pero ésta no va de hace tiempo y he buscado por todas partes y no está. Quien lo tenga que lo ponga en un mensaje como adjunto o me lo pase al mail.

Muchas Gracias!
Responder Con Cita
  #14  
Antiguo 28-04-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Kia: Me alegro enormemente que te hayas decidido por otra cosa, te recomiendo Firebird (www.firebird.com.mx) y tambien www.ibphoenix.com donde estan los manuales.

Firebird es la evolución gratuita de Interbase. Con interbase sólo puedes tener (creo) que 3 o 5 usuarios conectados, si quieres más ususarios, tienes que pasar por caja. Con Firebird no hay límite.

Para atacar la base de datos, te recomiendo los MDOLIB (Mercury Database Object) es el equivalente a los componentes IBX de la paleta de delphi. Tambien son OpenSource.

Como sustituto del Database Desktop, puedes usar el Ib Expert Personal (gratuito tambien).

Colgueit No puedo subir el programa caerques porque lo tengo adaptado a mis necesidades, difiere mucho del original.

Crear un alias nuevo es bastante sencillo:
Código Delphi [-]
uses bde;

with session do
begin
  config := cmall;
  if not IsAlias('pepe') then
    addstandardalias('pepe', '\\servidor...\tablas');
 saveconfig;
end;


Edito: Enlaces corregidos

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 28-04-2006 a las 14:27:07.
Responder Con Cita
  #15  
Antiguo 28-04-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Cita:
Empezado por kia
Ademas todavia hay mas cosas que Lepe no menciona
Por supuesto, Sin nombrar como hacer copias de seguridad y restaurarla, compactar la base de datos, hacer el instalador del programa incluyendo el BDE, creando los alias y configurando qué ordenador tiene la base de datos y cuales acceden a través de la red, lo del ttable.flushbuffers.....

Todo viene a ser lo mismo. Paradox fue bueno en su tiempo, pero ya ha caducado. Hacer un programa hoy en día, como lo espera un usuario final, con paradox, es demasiado trabajo.

Hacerlo con Interbase / Firebird simplifica las cosas para el cliente y para nosotros. El "pero" viene porque hay que estudiar nuevos conceptos y técnicas de trabajo, pero merece la pena.

saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #16  
Antiguo 28-04-2006
Avatar de Maury Manosalva
Maury Manosalva Maury Manosalva is offline
Miembro
 
Registrado: ago 2005
Posts: 101
Poder: 19
Maury Manosalva Va por buen camino
Prueba esto con Paradox, no me adjunto archivo

Pasos para tener una aplicación de manejo de tablas Paradox en red.

1. En la PC que va ha ser servidor (creo que dices será la tuya), se debe tener instalado el BDE.
2. Defines o creas la carpeta (o carpetas) donde estará el .exe que maneja las tablas y también dónde estarán las tablas. (Por ejemplo: Supongamos que en una carpeta llamada MiAplicación tiene dentro otra carpeta llamada Databases. Tenemos en la carpeta MiAplicación el .exe que maneja las tablas en Paradox y en la carpeta Database todas las tablas con los indices, etc.).
3. Con el Explorador de Windows (u otra forma) compartes la carpeta MiAplicación con todos aquellos usuarios que trabajarán con ella.
4. En tu Explorador buscas en entorno de red la carpeta que acabas de compartir y la mapeas poniéndole una letra identificativa (ej: Z) y que se conecte cada vez que se inicie Windows. Esto es importante por lo que verás adelante.
5. Con el Database Desktop defines el alias que susas en tus tablas dándole el camino a la carpeta Databases pero entrando por la torre Z. (te quedaría Z:\Databases).
6. Puedes crear un acceso directo al .exe en tu escritorio de la misma forma, entrando por Z:
7. Debes ejecutar el BDEAdmin y entonces definir lo siguiente: En la pestaña Databases, debe aparecer el alias que acabas de crear. Das clic en él y a la derecha compruebas que aparece el PATH a través de Z:\Databases (según el ejemplo), que es la torre mapeada.
8. Ahora dos cosas importantes: Primero: En la pestaña Configuración, despliegas Drivers, despliegas Native y das clic en Paradox. A la derecha en NETDIR debe aparecer C:\. Das clic encima de C:\ y a la derecha de la línea aparece un botón con tres puntos. Das clic en él y pones Z:\Databases. Segundo: Despliegas System, das clic en INIT, y a la derecha compruebas en Default Driver que dice Paradox y en Local Share cambias a TRUE. Ya. Estas son las dos cosas para garantizar que todo marche bien.


Ya en este punto debes poder desde tu PC ejecutar sin problemas tu aplicación, y lista para que se conecten a ella los usuarios desde otras PCs.


Ahora para cada PC que se conectará a tu aplicación debes hacer lo siguiente:

9. Instalar el BDE. Si tienes problemas con ello, te mando luego cómo resolver esto sin muchas complicaciones.
10. En el Explorador de Windows entras a entorno de red y buscas la PC servidor, y el ella la carpeta compartida (en nuestro ejemplo es MiAplicación) y la mapeas con el mismo identificador de torre que en cada otra PC, incluyendo el servidor, o sea, en nuestro caso la letra Z. Asegúrate de esté marcada la opción Conectar al iniciar Windows.
11. Con el Database desktop creas el alias de tus tablas dándole el camino igual que en tu PC, o sea, Torre Z:\databases.
12. Con El BDEAdmin compruebas lo del paso 7 y haces lo mismo que en el paso 8.
13. Creas un acceso directo al .exe , o copies edl .exe que está en el servidor en el escritorio (u otro lado) de la PC entrando por Z.

Ya todo debe estar OK. Como te podrás dar cuenta, en cada PC usuario no se copia ni el .exe ni las tablas. Ambos residen solo en el servidor. Solo es necesario en cada PC instalar el BDE, y realizar los pasos del 10 a 13.
Responder Con Cita
  #17  
Antiguo 28-04-2006
LUCHO LUCHO is offline
Miembro
 
Registrado: abr 2006
Ubicación: USA.
Posts: 20
Poder: 0
LUCHO Va por buen camino
Cita:
Empezado por kia
Hola a todos.
Como novata llevo un para de meses, hice un programa con D5, Wxp, y tablas planas paradox. Lo ejecuto en un solo ordenador, todo bien. Ahora debido a que funciona me piden que lo ponga en dos ordenadores mas.
Habia pensado en que todos los ordenadores emplearan la misma base de datos que hay en la primera instalción, direccionando los otros ordenadores hacia dichos datos, como se podria hacer ? (con los alias...).Gracias
Puedes probar escribiendo la direccion completa en el inspector de objetos en la propiedad databasename....

Lucho....
Responder Con Cita
  #18  
Antiguo 29-04-2006
kia kia is offline
Miembro
 
Registrado: jul 2003
Posts: 78
Poder: 21
kia Va por buen camino
Siguiendo el hilo

hola
Maury que significa el punto 4 cuando dices "mapear", mi vocabulario en castellano es limitado. Lepe las MDO una maravilla. Gracias
__________________
Nadie nace enseñado, pide y se te dara.
Responder Con Cita
  #19  
Antiguo 29-04-2006
Avatar de Maury Manosalva
Maury Manosalva Maury Manosalva is offline
Miembro
 
Registrado: ago 2005
Posts: 101
Poder: 19
Maury Manosalva Va por buen camino
Respuesta para mapear

Hola Kia, que quiero decir con mapear, vas a compartir en tu Pc la carpeta de tu proyecto, por el explorador de windows, conectar a unidad de red(Mapear, antiguamente) y le asignas una letra en el combo ej. (Z:\), la IP de tu maquina y nombre de compartido, te recomiendo en el compartir cuando le estes dando el nombre le coloques $, con esto se hace oculta la carpeta en la red pero si tu le das desde otro PC \\ # ip\nombre compartido$ lo va a ver.., bueno despues en los otros PC vas a colocarles la misma unidad de red(Z:\) y con el numero de ip (\\ # ip\nombre compartido$) y listo, y despues seguir con los pasos, si tienes dudas me puedes contactar por MSN, mmanosal2001@hotmail.com, yo estoy conectado.

Maury manosalva.
Bucaramanga, Colombia.
Responder Con Cita
  #20  
Antiguo 01-05-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Quiero hacer especial incapié en un detalle. Si usamos Interbase/Firebird no tenemos que compartir nada en el servidor. (Para algo está el Firebird Guardian instalado en el servidor).

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
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
Novato - Aplicaciones con Base de Datos Chocoslovaco Conexión con bases de datos 9 08-07-2005 11:25:12
DbExpres: Dod Bases de Datos, una sola Transacción. josemmerida Conexión con bases de datos 1 09-02-2005 19:43:58
Actualizacion de los datos en aplicaciones en distintos clientes David J. Conexión con bases de datos 1 20-09-2004 15:33:08
Aislamiento de Modulos de Datos en Aplicaciones MDI apicito Conexión con bases de datos 4 17-10-2003 09:08:10
¿15 MB para una sola base de datos? M@rcos Conexión con bases de datos 2 20-06-2003 15:49:26


La franja horaria es GMT +2. Ahora son las 13:48: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