Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   BDE Delphi 6 + Win Vista nada de Alias (https://www.clubdelphi.com/foros/showthread.php?t=57074)

GerTorresM 04-06-2008 19:04:31

BDE Delphi 6 + Win Vista nada de Alias
 
Hola a todos

El problema es el siguiente:

He desarrollado un aplicación con delphi 6, al instalarlo en una máquina con Win Vista, los cambios realizados en el archivo del BDE se almacenan en forma aparente, pues al ejecutar el programa lo único que pasa es que dice que no encuentra el objeto de la base de datos.

alguien sabe omo crear el alias en forma dinamica o que archivo es el que debo modificar en win vista para que alamacene realmente los cambios.


Gracias de Antemano


Germán Torres

Al González 05-06-2008 01:41:21

¡Hola Germán!

Tal vez mi respuesta no sea nada alentadora, pero hace ya muños años que la BDE está clasificada como obsoleta. Cierto, todavía es útil en algunos casos, pero veo bastante difícil que pueda vivir en un entorno de última y abrumadora generación como el maltrecho y desangelado (por no decir "desgraciado") Windows Vista.

Aunque mi recomendación sería que usaras en cuanto pudieras otro mecanismo de acceso a datos, espero que alguno de los compañeros conozca un remedio al problema que tienes ahora.

Un abrazo.

Al González. :)

egostar 05-06-2008 03:52:46

Para inicializar una base de datos paradox esto es lo que yo hago en tiempo de ejecución y sin usar Alias de la base de datos, es obvio que se requiere que el BDE esté instalado:

1. Crear una Archivo INI con el nombre de tu aplicacion (y en el mismo directorio) de esta forma:

Cita:

Aplicación = Menu.exe
Archivo INI = Menu.INI
2. Dentro del INI pones lo siguiente:

Código:

[Datos]
RutaRed=\HOST
RutaLocal=C:\Desarrollo\TDelphi\egostar\
Ruta=Tables\
Ruta PrivateDir=Private\
Ruta net=Network\
Servidor=SI

3. En un DataModule mete este código (en el evento OnCreate).

Código Delphi [-]
procedure TDataModule1.DataModuleCreate(Sender: TObject);
var
  ruta,servidor,rutaprivate,rutanet,rutaRed,rutaLocal : string;
begin
  with tinifile.create (changefileext(paramstr(0),'.INI')) do
  try
    rutaRed     := readstring ('Datos', 'RutaRed', '');
    rutaLocal   := readstring ('Datos', 'RutaLocal', '');
    servidor    := readstring ('Datos', 'Servidor', '');

    if uppercase (servidor) <> 'NO' then begin
       ruta        := rutaLocal + readstring ('Datos', 'Ruta', '');
       rutanet     := rutaLocal + readstring ('Datos', 'Ruta net', '');
       rutaprivate := rutaLocal + readstring ('Datos', 'Ruta PrivateDir', '');
    end
    else begin
           ruta        := rutaRed + readstring ('Datos', 'Ruta', '');
           rutanet     := rutaRed + readstring ('Datos', 'Ruta net', '');
           rutaprivate := rutaRed + readstring ('Datos', 'Ruta PrivateDir', '');
         end;
  finally
  end;

  with DataBase1 do begin

     with Session1 do begin
        NetFileDir := rutanet;
        PrivateDir := rutaprivate;
     end;

    Params.Clear;
    Params.Add('LOCAL SHARE=FALSE');
    Params.Add('PATH=' + RUTA);
    Params.Add('DEFAULT DRIVER=PARADOX');
    Params.Add('ENABLE SCHEMA CACHE=TRUE');
    Params.Add('ENABLE BCD=FALSE');

    Connected := true;
  end;
end;

Tal vez eso te solucione el problema inmediato, pero ten muy en cuenta lo que te comenta [Al González] (Con acento :D)

Salud OS

GerTorresM 05-06-2008 13:41:41

Gracias a todos por su tiempo y respuestas, la solución que halle fue muy fácil y la publico por si alguien tiene el mismo problema
Código Delphi [-]

procedure TDMDatosServicios.CrearAlias(ElAlias: String);
Var ListaAlias : TStringList;
begin
  ListaAlias:= TStringList.Create;
  try
    with ListaAlias do
      begin
        Add('DATABASE NAME=C:\Datos\Publicos.mdb');
        Add('USER NAME= ');
        Add('OPEN MODE=READ/WRITE');
        Add('LANGDRIVER= ');
        Add('SYSTEM DATABASE= ');
        Add('PASSWORD= contraseña');
      end;
  Except
  end;

// Si no existe crearlo
If not session.IsAlias(ElAlias) Then
   Begin
   Try
      Session.AddAlias('Servicios','MSACCESS',ListaAlias); 
   except
      MessageDlg('Error creando el Alias: '+ElAlias,mtError,[mbOk],0);
      Exit;
      End;
   End;
end;

GerTorresM 06-06-2008 01:04:17

Creacion de Alias BDE
 
Una cosa más el código anterior lo cargue en el vento OnCreate de Modulo de Datos


Gracías


La franja horaria es GMT +2. Ahora son las 18:02:38.

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