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: compilerefault.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;
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 := 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 := 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.