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 07-10-2006
Avatar de Max_E.
Max_E. Max_E. is offline
Miembro
 
Registrado: sep 2006
Posts: 90
Poder: 18
Max_E. Va por buen camino
Alias en tiempo de ejecución

hola a todos:

quierea saber si hay alguna manera de dirijir el alias en tiempo de ejecucion es decir:

Antes de hacer correr una aplicacion que utilice base de datos, se requiere dar la ubicacion del archibo *.DB (el alias) con el ''BDE arministrator'' y esa direccion se guardá en la computadora, el problema ocurre cuando llevo la aplicacion a otra computadora que no tenga el BDE administrator, y lo que quiero hacer es dar el alias al momento de abrir la aplicacion (en el Tform1.FromCreate)


Código Delphi [-]
Procedure Tform1.Formcreate(Sender: TObject);
begin
try
{ 1º intentar abrir el alias }
  query1.DatabaseName := 'MiDemos';
except
  on EDatabaseError do
    {si esto falla, intentar dar la ubicacion del archivo *.DB }
    query1.DatabaseName := 'c:\delphi\demos\database';
end;

o algo asi..............

Gracias de ante mano por la yuda que puedan darme.
Responder Con Cita
  #2  
Antiguo 07-10-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Oido cocina:

GL.DB es un tipo Record con la configuración cargada desde un .ini
Código Delphi [-]
  with DtbPPal.Session do // dtbPPal es un TDatabase
  begin
    MensajeAdd(true, '2   Alias');
    if IsAlias(gl.DB.Alias) then // gl.db.alias es un string con el nombre del alias
      MensajeAdd(true, '2.1 Usando alias existente: ' + gl.DB.Alias)
    else
    begin
      MensajeAdd(true, '2.1 Creando Alias: ' + gl.DB.Alias + ' para la carpeta: ' +
        gl.DB.DatabaseDir); // ruta completa de la base de datos
      AddStandardAlias(gl.DB.Alias, gl.DB.DatabaseDir, 'Paradox');
    end;

    try
      MensajeAdd(true, '1   Configurar la sesion');
      NetFileDir := GL.DB.NetFileDir;
      MensajeAdd(true, '1.1 Usando Carpeta NET: ' + NetFileDir);
      MensajeAdd(true, '1.2 Usando carpeta temporal: ' + gl.DB.PrivateDir);
      PrivateDir := gl.DB.PrivateDir;
      MensajeAdd(true, '1.3 Modo Sesion: cmAll');
      ConfigMode := cmAll;
      MensajeAdd(true, '1.4 Modo servidor: ' + BoolToStrSP(GL.ModoServidor));
      OnPassword := MiSessionPassword;

    except
      on E: Exception do
        HandleException('Error al configurar la sesion', E);
    end;

  end;//with session

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 07-10-2006
Avatar de Max_E.
Max_E. Max_E. is offline
Miembro
 
Registrado: sep 2006
Posts: 90
Poder: 18
Max_E. Va por buen camino
ayuda

hola Lepe:

soy nobato en base de datos y la verdad no se utilizar un Tdatabase, no se como le hiciste para que a una cadena (GL) tenga propiedades como gl.DB.DatabaseDir, GL.DB.NetFileDir, etc. o que tipo de cadena es. Lo que yo hice fue declarar GL:string; (seguro que hice una burrada) y tratar de entender tus codigos, pero no entiendo esto del GL. Y para rematar yo estoy utilizando un query y el query no tiene la propiedad ''session''.

podrias aclarar mis dudas y dicerme como ago para utilizar un query en ves de un database o como utilizar un database en caso de que sea imposoble lo anterior. gracias de ante mano por tu ayuda
Responder Con Cita
  #4  
Antiguo 08-10-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Pues te vas a echar a reir cuando veas lo simple que es lo del GL:
Código Delphi [-]
type
  TParadoxConfig = record
    NetFileDir:    String[255];     
    PrivateDir:    String[255];
    DatabaseDir:   String[255];
    Alias:         String[20];
  end;

  Tglobal = record
    DB:         TParadoxConfig;
    ModoServidor: Boolean;
    NotificarMensajes: Boolean;
  end;

var
  GL:      tglobal;
GL viene de GLobal, es decir, una variable global que usaba en toda la aplicación, ahora no recomiendo usar este tipo de cosas, pero me fue útil porque no sabía hacerlo de otra forma.

Como ves es simplemente un registro metido dentro de otro

Lo que has hecho de crearla como un String, está perfecto.

El BDE lo necesitarás instalar junto con tu programa siempre. Aquí tienes un instalador

Despues de instalarlo tienes que crear el alias, tienes 2 formas:
- Usando el BDE ADMINISTRATOR
- Haciendolo por código con AddStandarAlias.

Para hacerlo por código intenta esto otro:
Código Delphi [-]
Uses DBTables;

 with Database.Session do 
  begin
    if not IsAlias(gl.DB.Alias) then 
      AddStandardAlias(gl.DB.Alias, gl.DB.DatabaseDir, 'Paradox');
      ConfigMode := cmAll;
  end;//with session
  with database do
      DatabaseName := gl.DB.DatabaseDir; // carpeta de los *.DB
      Params.Clear;
      params.Add('PATH=' + DatabaseName);
      MensajeAdd(True, 'PATH = ' + DatabaseName);
      params.Add('DEFAULT DRIVER=PARADOX');
      params.Add('ENABLE BCD=FALSE');
    end;   // dtbppal
  Database.Session.Open;
  Database.Connected := True;

Es más largo que lo anterior, pero debe funcionar con un solo detalle: El nombre que tenga el alias debe ser el mismo en tu casa y en casa del cliente.

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
¿Se puede cambiar el path del alias en tiempo de ejecución? JuanBCT Tablas planas 2 23-05-2006 18:20:29
Casteo en tiempo de ejecución moesis OOP 4 21-07-2005 15:21:56
Control en tiempo de ejecución vpepen Varios 2 13-09-2004 16:04:13
Tiempo de ejecucion? st7 Varios 3 11-05-2004 22:03:28
Como configurar un alias en el DataBaseDesktop, pero por codigo (tiempo de ejecución) hhuillcen Conexión con bases de datos 1 14-06-2003 06:16:45


La franja horaria es GMT +2. Ahora son las 01:31:24.


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