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 18-08-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
TDataModule: Es un contenedor donde poner las tablas y objetos no visuales. Normalmente se utiliza para no tener desperdigadas las tablas por todos las ventanas, pero tambien, en determinadas aplicaciones, no se usa de esta forma.

En tu caso, yo añadiría un TDatamodule, File -->new --> Datamodule, como verás parece una ventana pero con fondo blanco, estará oculta en tu aplicación siempre, no tiene métodos para mostrarlo, ya que no tiene sentido, solo es un contenedor de objetos.

Ahi pones el TDatabase, solo tienes que modificar la propiedad DatabaseName, donde eliges el alias que tengas definido, y ya puedes poner el código:
Código Delphi [-]
MiDataModule.OnCreate;
 
Begin

With Database1.Session do begin
  NetFileDir := '\\MiServer\MisDatos\NET';
  PrivateDir := 'c:\Temp';
End;
 
With DataBase1 do begin
  Params.Clear;
  Params.Add('PATH='+'\\MiServer\MisDatos');
  Params.Add('DEFAULT DRIVER=PARADOX');
  Params.Add('ENABLE BCD=FALSE');

End;
  Database1.Session.Open;
  Database1.Connected:= True; 
End;

Tendrás que leer en la ayuda de delphi, que es un TDatabase, y para que se usa este componente. Como idea general, es el componente que se encarga de la conexion a las tablas, y mantiene una lista con todas las tablas que usas en tu aplicación

El TSession no lo añadas en el Datamodule. Ya ves que se accede a través del TDatabase.

Ahora a cada tabla y consulta que tengas, tienes que modificar la propiedad SessionName y elegir "Default"

Todas estas cosas pueden hacerse de mil maneras, por eso es tan lioso .

Te recomiendo el libro de la , la cara oculta de Delphi 4. Viene mucha información sobre lo que estas haciendo.

PD: No eres inutil, eres ignorante, como todos los que empezamos una tarea nueva. La ignorancia es pasajera si pones de tu parte .
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #2  
Antiguo 18-08-2005
Sayuri Sayuri is offline
Miembro
 
Registrado: jul 2005
Posts: 131
Poder: 19
Sayuri Va por buen camino
primero.... muchisimas gracias por tu ayuda
y segundo... siguen las preguntas
las propiedades del DataBase me pide nombre alias (que es donde pongo el mio)... sólo ahí verdad? porque si lo pongo en DataBaseName... es cuando da error

Última edición por Sayuri fecha: 18-08-2005 a las 12:28:01.
Responder Con Cita
  #3  
Antiguo 18-08-2005
Sayuri Sayuri is offline
Miembro
 
Registrado: jul 2005
Posts: 131
Poder: 19
Sayuri Va por buen camino
y otra duda final ¿tengo que añadir el componente TSession? que propiedades le pongo?
Responder Con Cita
  #4  
Antiguo 18-08-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Cita:
Empezado por Ayuda delphi
property DatabaseName: string;

Description

Use DatabaseName to specify the name of the database to use with a database component. If DatabaseName is the same as an existing Borland Database Engine (BDE) alias, then the AliasName and DriverName properties need not be set. If DatabaseName does not match an existing BDE alias, then either the application must also supply a valid alias in the AliasName property in addition to the DatabaseName, or it must supply the DriverName and Params properties.

DatabaseName can be a fully qualified path name when connecting to a Paradox or dBASE database.

Note: Attempting to set DatabaseName when the Connected property is True raises an exception.
Tip: At design time double-click a TDatabase component to invoke the Database editor and set the DatabaseName.
Cita:
Empezado por Lepe
El TSession no lo añadas en el Datamodule. Ya ves que se accede a través del TDatabase.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #5  
Antiguo 18-08-2005
Sayuri Sayuri is offline
Miembro
 
Registrado: jul 2005
Posts: 131
Poder: 19
Sayuri Va por buen camino
Siento volverte loco
gasias ;-) y perdón
Responder Con Cita
  #6  
Antiguo 19-08-2005
Sayuri Sayuri is offline
Miembro
 
Registrado: jul 2005
Posts: 131
Poder: 19
Sayuri Va por buen camino
hola amigos,
llevaba mucho sin dar la brasa en este hilo, y no podía ser jeje, a ver sólo me queda un cabo sin agarrar, a ver si me podeis echar una mano (al cuello no vale ;-) )
El artículo acaba con

Cita:
Como no todo es perfecto o bien nuestro programa puede colgarse en un momento dado, o un usuario con prisas puede apagar el ordenador sin mas, aveces quedan ficheros *.LCK en el directorio de datos sin que este ningún usuario conectado, en este caso cuando nuestro programa intenta inicializar el BDE, este nos da un error que las tablas están "busy", siendo falso. El remedio es verificar que hay usuarios conectados y antes de abrir las tablas comprobar la existencia de tales ficheros, si no hay usuarios y los ficheros están el directorio nuestra aplicación deberá ser lo suficientemente inteligente para borrarlos y olvidares del tema. Este proceso lo haremos una vez activa la session pero sin tablas abiertas.
vale... creo que lo entiendo, corregirme si me explico mal:
Al iniciar la aplicación tengo que ver en el directorio de las tablas que no hay ningún archivo *.LCK sin que ningún usuario este conectado. Me parece muy bien, pero ¿cómo hago eso?

Se que estoy pez, pero es la primera vez que realizo un programa para trabajar en red.

Muchas gracias
Responder Con Cita
  #7  
Antiguo 19-08-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Saber el número de usuarios

Por supuesto, el usuario que usa esa rutina tambien cuenta, por tanto el verdadero resultado es:

Código Delphi [-]
Usuarios := GetUsers - 1;

Por cierto, para borrar archivos, puedes usar el Deletefile('\\Miservidor\...'), no da problemas con rutas de red.

Si es que paradox es mucho paradox.... Verás cuando te pidan que hagas copia de seguirdad de la base de datos.... , con FireBird, un simple comando con Gbak y listo, aquí puffff.

Un saludo
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #8  
Antiguo 23-08-2005
JVC Soft JVC Soft is offline
Miembro
 
Registrado: ago 2005
Posts: 12
Poder: 0
JVC Soft Va por buen camino
Sayuri
Mandame tu dirección de email y te haré llegar una explicación detallada de lo que debes hacer, pues ya yo me rompí la cabeza con eso una vez antes de dar con lo que era y me funciona chévere. (También todo el interesado)
La mía es jvc@cnci.co.cu
Saludos
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


La franja horaria es GMT +2. Ahora son las 10:36:53.


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