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)
-   -   necesito ver ejemplos de instaladores que utilicen el Alias y el BDe (https://www.clubdelphi.com/foros/showthread.php?t=29815)

JClink 02-02-2006 01:44:42

necesito ver ejemplos de instaladores que utilicen el Alias y el BDe
 
Buenas, llevo varios dias intentando resolver como crear un instalador que utiliza una base de datos comun para varios ordenadores.

No tengo ni idea de como crearlo exactamente. Consigo introducir el alias en el ordenador que tengo como cliente pero no hay ninguna base de datos asociada.

He leido todos los post acerca del inno setup y del istool pero no acabo de comprender como funciona el AddAlias.exe ni como seleccionar la base de datos del alias.

Os adjunto el codigo del IsTool:
Cita:

[Components]
Name: principal; Description: Archivos de la aplicación necesarios
Name: BBDD; Description: Base de datos
[Tasks]
Name: desktopicon; Description: Crear un acceso directo en el escritorio; GroupDescription: Additional icons:; Components: principal
Name: desktopicon\common; Description: Para todos los usuarios del PC; GroupDescription: Additional icons:; Components: principal; Flags: exclusive
Name: desktopicon\user; Description: Solo para el usuario actual; GroupDescription: Additional icons:; Components: principal; Flags: exclusive unchecked
[Dirs]
Name: {app}\bbdd; Permissions: admins-modify
Name: {app}\Administer; Components: ; Tasks: ; Languages:
[Files]
Source: Prueba 9\Project1.exe; DestDir: {app}; DestName: Clinical Administer.exe; Components: principal
Source: BBDD\bd1.mdb; DestDir: {app}\BBDD; Components: BBDD
Source: Prueba 9\*.*; DestDir: {app}\Administer; Excludes: *.~*; Components: principal
Source: Prueba 9\Imagenes\*.*; DestDir: {app}\Imagenes; Components: principal
Source: Prueba 9\Imageens\*.*; DestDir: {app}\Imageens; Components: principal
Source: Prueba 9\BDeInst.dll; DestDir: {tmp}
Source: Minireg.exe; DestDir: {tmp}
Source: AddAlias.exe; DestDir: {tmp}



[Icons]
Name: {userdesktop}\clinic; Filename: {app}\Clinical Administer.exe; WorkingDir: {app}; IconFilename: {app}\imagenes\redx01c.ico
Name: {group}\{cm:UninstallProgram,Clinical Administer}; Filename: {uninstallexe}
[INI]
Filename: {win}\ClinicalAdminister.INI; Section: InstallSettings; Flags: uninsdeletesection
Filename: {win}\ClinicalAdminister.INI; Section: InstallSettings; Key: InstallPath; String: {app}
[UninstallDelete]
Type: files; Name: {win}\ClinicalAdminister.INI
[InstallDelete]
Type: files; Name: {win}\ClinicalAdminister.INI
[Languages]
Name: sp; MessagesFile: compiler:Default.isl
[Run]
Filename: {tmp}\Minireg.exe; Parameters: """{tmp}\BdeInst.dll"""; StatusMsg: Instalando el BDE...
; Alias db1
Filename: {tmp}\AddAlias.exe; Parameters: """-db1"" ""{code:RutaAlias}"" ""Microsoft Access Driver (*.mdb)"""

[LangOptions]
LanguageName=Spanish
LanguageID=$040A
[CustomMessages]
CustomFormCaption=Instalar alias de la base de datos
CustomFormDescription=CustomForm description
Código Delphi [-]
[code]
  var
    Label1: TLabel;
    FolderTreeView1: TFolderTreeView;
    ruta:string;
function InitializeSetup(): Boolean;
var
Acc97Path: String;
begin
Result := true;
//Solo si access existe.
{if(not RegKeyExists(HKLM,'SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\MSACCESS.EXE')) then
begin
Result := False;
MsgBox('Se requiere que Microsoft Access este instalado' #13#13 'La instalación no puede continuar', mbError, MB_OK);
end;}
{if(RegQueryStringValue(HKEY_LOCAL_MACHINE,'SOFTWARE\Microsoft\Office\8.0','', Acc97Path)) then
begin
Result := False;
MsgBox('Se requiere una version de Microsoft Access 2000 o superior' #13#13 'La instalación no puede continuar', mbError, MB_OK);
end;}
end;
procedure LocalOnClick(Sender: TObject);
begin
ruta:='{app}\BBDD\bd1.mdb';
end;
procedure NuevaRutaOnClick(Sender: TObject);
begin
ruta:=FolderTreeView1.Directory + 'bd1.mdb';
end;

function RutaAlias(S: String): String;
begin
Result := ruta;
end;
procedure CustomForm_Activate(Page: TWizardPage);
begin
end;
function CustomForm_ShouldSkipPage(Page: TWizardPage): Boolean;
begin
    Result := False;
end;
function CustomForm_BackButtonClick(Page: TWizardPage): Boolean;
begin
    Result := True;
end;
function CustomForm_NextButtonClick(Page: TWizardPage): Boolean;
begin
    Result := True;
end;
procedure CustomForm_CancelButtonClick(Page: TWizardPage; var Cancel, Confirm: Boolean);
begin
end;
function CustomForm_CreatePage(PreviousPageId: Integer): Integer;
var
    Page: TWizardPage;
begin
    Page := CreateCustomPage(
      PreviousPageId,
      ExpandConstant('Seleccione la ruta donde se encuentre su base de datos'),
      ExpandConstant('Red local o remota')
    );
    { Label1 }
    Label1 := TLabel.Create(Page);
    with Label1 do
    begin
      Parent := Page.Surface;
      Left := ScaleX(0);
      Top := ScaleY(16);
      Width := ScaleX(317);
      Height := ScaleY(13);
      Caption := 'Escoja el ordenador donde se encuentre la base de datos:';
    end;
    { FolderTreeView1 }
    FolderTreeView1 := TFolderTreeView.Create(Page);
    with FolderTreeView1 do
    begin
      Parent := Page.Surface;
      Left := ScaleX(16);
      Top := ScaleY(48);
      Width := ScaleX(369);
      Height := ScaleY(161);
      Cursor := crArrow;
      Directory := '{app}\BBDD';
      TabOrder := 0;
      OnChange := @NuevaRutaOnClick;
    end;

    with Page do
    begin
      OnActivate := @CustomForm_Activate;
      OnShouldSkipPage := @CustomForm_ShouldSkipPage;
      OnBackButtonClick := @CustomForm_BackButtonClick;
      OnNextButtonClick := @CustomForm_NextButtonClick;
      OnCancelButtonClick := @CustomForm_CancelButtonClick;
    end;
    Result := Page.ID;
  end;
  procedure InitializeWizard();
  begin
       CustomForm_CreatePage(wpInfoAfter);
  end;
Cita:

[Registry]
Root: HKLM; SubKey: Software\ODBC\ODBC.INI\ODBC Data Sources; ValueType: string; ValueName: db1; ValueData: Microsoft Access Driver (*.mdb); Flags: createvalueifdoesntexist uninsdeletevalue
Root: HKLM; SubKey: Software\ODBC\ODBC.INI\db1; Flags: createvalueifdoesntexist uninsdeletevalue; ValueName: Driver; ValueType: string; ValueData: C:\WINDOWS\system32\odbcjt32.dll
Root: HKLM; SubKey: Software\ODBC\ODBC.INI\db1; Flags: createvalueifdoesntexist uninsdeletevalue; ValueName: DBQ; ValueType: string; ValueData: {code:RutaAlias|a}
Root: HKLM; SubKey: Software\ODBC\ODBC.INI\db1; Flags: createvalueifdoesntexist uninsdeletevalue; ValueName: DriverId; ValueType: dword; ValueData: 25
Root: HKLM; SubKey: Software\ODBC\ODBC.INI\db1; Flags: createvalueifdoesntexist uninsdeletevalue; ValueName: FIL; ValueType: string; ValueData: MS Access
Root: HKLM; SubKey: Software\ODBC\ODBC.INI\db1; Flags: createvalueifdoesntexist uninsdeletevalue; ValueName: SafeTransactions; ValueType: dword; ValueData: 0
Root: HKLM; SubKey: Software\ODBC\ODBC.INI\db1; Flags: createvalueifdoesntexist uninsdeletevalue; ValueName: UID; ValueType: string; ValueData:
Root: HKLM; SubKey: Software\ODBC\ODBC.INI\db1\Engines\Jet; Flags: createvalueifdoesntexist uninsdeletevalue; ValueName: ImplicitCommitSync; ValueType: string; ValueData:
Root: HKLM; SubKey: Software\ODBC\ODBC.INI\db1\Engines\Jet; Flags: createvalueifdoesntexist uninsdeletevalue; ValueName: MaxBufferSize; ValueType: dword; ValueData: 2048
Root: HKLM; SubKey: Software\ODBC\ODBC.INI\db1\Engines\Jet; Flags: createvalueifdoesntexist uninsdeletevalue; ValueName: PageTimeout; ValueType: dword; ValueData: 5
Root: HKLM; SubKey: Software\ODBC\ODBC.INI\db1\Engines\Jet; Flags: createvalueifdoesntexist uninsdeletevalue; ValueName: Threads; ValueType: dword; ValueData: 3
Root: HKLM; SubKey: Software\ODBC\ODBC.INI\db1\Engines\Jet; Flags: createvalueifdoesntexist uninsdeletevalue; ValueName: UserCommitSync; ValueType: string; ValueData: Yes
Gracias de antemano.

vtdeleon 02-02-2006 01:47:37

Eer Diabl***.....


La franja horaria es GMT +2. Ahora son las 20:12:36.

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