Newsgroup: it.comp.software.database
Titolo: Inno setup: script installazione firebird superserver

Sto preparando con innosetup un pacchetto autoinstallante per un nostro
applicativo che fa uso di firebird come database.
Una volta installato il database in modalità super server e alzato il
servizio, dovrei eseguire anche una query di popolamento del database.
Ho già scaricato e provato da qui:
http://www.alanti.net/firebird/inst/index.html
ma in fase di compilazione mi dà errore sul flag AdminPrivilegesRequired,
insomma credo che la pagina sia relativa a vecchie versioni di inno e di
firebird.
Qualcuno ha uno script già preparato per innosetup che faccia questo?
Followup impostato su it.comp.software.database
PS:
Scrivo questo post perchè non ho avuto tempo di studiare la documentazione
di firebird e di innosetup: mi scuso per l'ovvia mancanza, purtroppo sono
sotto scadenza a non ce la faccio a seguire tutte le attività che dovrei
completare.
-- 
Morde

 Qualcuno ha uno script già preparato per innosetup che faccia questo?
Io ho provato a prendere quello, e si capisce abbastanza bene cosa fare. I
problemi sono imho nella variazione di sintassi di Inno Setup.
Es.:
Prova a sostituire:
AdminPrivilegesRequired=true
con:
PrivilegesRequired=admin
Togli:
AlwaysCreateUninstallIcon=true
Cambia questo:
MessagesFile=compiler:Default.isl
Mettendo in fondo:
[Languages]
Name: italian; MessagesFile: compiler:Languages\Italian.isl
Togli:
WizardDebug=false
Non so se la sostituzione/cancellazione è corretta, ho fatto "ad occhio".

 problemi sono imho nella variazione di sintassi di Inno Setup.
[...]
Ti ringrazio: ho fatto dei test con l'ultima release di FB, e in pratica
risulta che lo script da me citato è troppo obsoleto, non solo cambiano i
nomi degli eseguibili ma ci sono file diversi..
Non è un problema tracciare un'installazione nativa e riprodurla (postero'
qui sopra lo script), piu' che altro sto pensando a come fare il deploy di
un database nativo (oppure eseguire gli statement DDL di creazione tabelle,
indici e quant'altro).
Hai qualche esempio a riguardo?
Grazie,
-- 
Morde

 indici e quant'altro).
Lo script che segue dovrebbe fare quello che avevo chiesto, rimane ancora
il dubbio sul come "impiantare" il database proprietario (copio il file e
lo registo? oppure e' in un file di configurazione di FB ?)  :-O
Se avete suggerimenti, integrazioni (file di licenza corretto?) ecc... vi
pregherei di contribuire. :-)
grazie
=========[ script iss installazione FB 2.0]========
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
#define MyAppName "xxxxxx"
#define MyAppVerName "xxxxx"
#define MyAppPublisher "xxxxx"
#define MyAppURL "xxxxx"
[Setup]
AppName={#MyAppName}
AppVerName={#MyAppVerName}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
DisableProgramGroupPage=true
LicenseFile=C:\download\Firebird-2.0.3.12981-1_win32\IPLicense.txt
OutputBaseFilename=MYDatabase
Compression=lzma
SolidCompression=true
OutputDir=C:\Sviluppo\PacchettiSetup\Firebird
[Languages]
Name: english; MessagesFile: compiler:Default.isl
Name: italian; MessagesFile: compiler:Languages\Italian.isl
[Files]
Source: C:\download\Firebird-2.0.3.12981-1_win32\bin\msvcr71.dll; DestDir:
{app}; Flags: ignoreversion
Source: C:\download\Firebird-2.0.3.12981-1_win32\bin\fb_lock_print.exe;
DestDir: {app}; Flags: ignoreversion
Source: C:\download\Firebird-2.0.3.12981-1_win32\bin\fbclient.dll; DestDir:
{app}; Flags: ignoreversion
Source: C:\download\Firebird-2.0.3.12981-1_win32\bin\fbguard.exe; DestDir:
{app}; Flags: ignoreversion
Source: C:\download\Firebird-2.0.3.12981-1_win32\bin\fbserver.exe; DestDir:
{app}; Flags: ignoreversion
Source: C:\download\Firebird-2.0.3.12981-1_win32\bin\gstat.exe; DestDir:
{app}; Flags: ignoreversion
Source: C:\download\Firebird-2.0.3.12981-1_win32\bin\ib_util.dll; DestDir:
{app}; Flags: ignoreversion
Source: C:\download\Firebird-2.0.3.12981-1_win32\bin\icudt30.dll; DestDir:
{app}; Flags: ignoreversion
Source: C:\download\Firebird-2.0.3.12981-1_win32\bin\icuin30.dll; DestDir:
{app}; Flags: ignoreversion
Source: C:\download\Firebird-2.0.3.12981-1_win32\bin\icuuc30.dll; DestDir:
{app}; Flags: ignoreversion
Source: C:\download\Firebird-2.0.3.12981-1_win32\bin\instclient.exe;
DestDir: {app}; Flags: ignoreversion
Source: C:\download\Firebird-2.0.3.12981-1_win32\bin\instreg.exe; DestDir:
{app}; Flags: ignoreversion
Source: C:\download\Firebird-2.0.3.12981-1_win32\bin\instsvc.exe; DestDir:
{app}; Flags: ignoreversion
Source: C:\download\Firebird-2.0.3.12981-1_win32\bin\msvcp71.dll; DestDir:
{app}; Flags: ignoreversion
Source: C:\download\Firebird-2.0.3.12981-1_win32\intl\fbintl.dll; DestDir:
{app}; Flags: ignoreversion
Source: C:\download\Firebird-2.0.3.12981-1_win32\intl\fbintl.conf; DestDir:
{app}; Flags: ignoreversion
Source: C:\download\Firebird-2.0.3.12981-1_win32\misc\intl.sql; DestDir:
{app}; Flags: ignoreversion
Source:
C:\download\Firebird-2.0.3.12981-1_win32\misc\upgrade\ib_udf\ib_udf_upgrade.sql;
DestDir: {app}; Flags: ignoreversion
Source:
C:\download\Firebird-2.0.3.12981-1_win32\misc\upgrade\ib_udf\ib_udf2_params.txt;
DestDir: {app}; Flags: ignoreversion
Source:
C:\download\Firebird-2.0.3.12981-1_win32\misc\upgrade\ib_udf\ib_udf_params.txt;
DestDir: {app}; Flags: ignoreversion
Source:
C:\download\Firebird-2.0.3.12981-1_win32\misc\upgrade\security\security_database.sql;
DestDir: {app}; Flags: ignoreversion
Source:
C:\download\Firebird-2.0.3.12981-1_win32\misc\upgrade\security\security_database.txt;
DestDir: {app}; Flags: ignoreversion
Source: C:\download\Firebird-2.0.3.12981-1_win32\udf\ib_udf.sql; DestDir:
{app}; Flags: ignoreversion
Source: C:\download\Firebird-2.0.3.12981-1_win32\udf\fbudf.dll; DestDir:
{app}; Flags: ignoreversion
Source: C:\download\Firebird-2.0.3.12981-1_win32\udf\fbudf.sql; DestDir:
{app}; Flags: ignoreversion
Source: C:\download\Firebird-2.0.3.12981-1_win32\udf\ib_udf2.sql; DestDir:
{app}; Flags: ignoreversion
Source: C:\download\Firebird-2.0.3.12981-1_win32\udf\ib_udf.dll; DestDir:
{app}; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
Source:
C:\download\Firebird-2.0.3.12981-1_win32\system32\Firebird2Control.cpl;
DestDir: {sys}; Languages: ; Flags: ignoreversion
[Icons]
Name: {group}\{cm:UninstallProgram,{#MyAppName}}; Filename: {uninstallexe}
[Run]
Filename: {app}\instreg.exe; Parameters: install -z; WorkingDir: {app};
StatusMsg: Registrazione server in corso
Filename: {app}\instsvc.exe; Parameters: install -auto -superserver
-guardian -z; WorkingDir: {app}; StatusMsg: Installazione servizi in corso
Filename: {app}\instsvc.exe; Parameters: start; WorkingDir: {app};
StatusMsg: Avio servizi in corso
[UninstallRun]
Filename: {app}\instsvc.exe; Parameters: stop; WorkingDir: {app}
Filename: {app}\instsvc.exe; Parameters: remove -z; WorkingDir: {app}
Filename: {app}\instreg.exe; Parameters: remove -z; WorkingDir: {app}
-- 
Morde


per compattare un pochino lo script potresti fare una cosa del genere
[Files]
Source: C:\download\Firebird-2.0.3.12981-1_win32\*; DestDir:{app}; 
Flags: ignoreversion recursesubdirs createallsubdirs
.......
Nei miei programmi per collegarmi al DB uso un file INI con dentro il 
path del DB e nel setup scrivo questa riga:
[INI]
Filename: {app}\Applicativo.ini; Section: DATI; Key: DataBasePath; 
String: {app}\dati
in modo che se l'utente sceglie un path personalizzato INNOSETUP mi 
aggiorna la riga del file ini di connessione al DB
Ti faccio un esempio
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
#define MyAppName "Ver xxxx"
#define MyAppVerName "Ver xxxx"
#define MyAppPublisher "Casa MIa"
#define MyAppURL "
http://www.sito.it
"
#define MyAppExeName "Appl.exe"
[Setup]
AppName={#MyAppName}
AppVerName={#MyAppVerName}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName=c:\programmi\Appl
DisableDirPage=false
DefaultGroupName={#MyAppName}
OutputDir=c:\Sviluppo\D7_setup\Appl\setup
OutputBaseFilename=Setup_Appl
Compression=lzma
SolidCompression=true
AlwaysShowDirOnReadyPage=true
AllowRootDirectory=true
UsePreviousAppDir=false
[Languages]
Name: english; MessagesFile: compiler:Default.isl
Name: Italiano; MessagesFile: compiler:Languages\Italian.isl
[Tasks]
Name: desktopicon; Description: {cm:CreateDesktopIcon}; 
GroupDescription: {cm:AdditionalIcons}; Languages:
[Files]
Source: c:\Sviluppo\D7\Appl\appl.exe; DestDir: {app}; Flags: ignoreversion
Source: c:\Sviluppo\D7\Appl\Cds.xml; DestDir: {app}; Flags: ignoreversion
Source: c:\Sviluppo\D7\Appl\Appl.ini; DestDir: {app}; Flags: ignoreversion
Source: c:\Sviluppo\D7\Appl\Dati\*; DestDir: {app}\dati; Flags: 
ignoreversion recursesubdirs createallsubdirs
Source: c:\Sviluppo\D7\Appl\Firebird\*; DestDir: {app}; Flags: 
ignoreversion recursesubdirs createallsubdirs
[Icons]
Name: {group}\{#MyAppName}; Filename: {app}\{#MyAppExeName}
Name: {userdesktop}\{#MyAppName}; Filename: {app}\{#MyAppExeName}; 
Tasks: desktopicon
Name: {group}\{cm:UninstallProgram, {#MyAppName}}; Filename: {uninstallexe}
[Run]
Filename: {app}\{#MyAppExeName}; Description: 
{cm:LaunchProgram,{#MyAppName}}; Flags: nowait postinstall skipifsilent
[INI]
Filename: {app}\Appl.ini; Section: DATI; Key: DataBasePath; String: 
{app}\dati
Ovviamente c:\Sviluppo\D7\Appl\Firebird c'e' la versione embedded di 
firebird già scompattata
Goblin
-- 
Ibis et redibis non morietur in bellum.

 Goblin
Ti ringrazio, il tuo post mi ha fatto venire in mente che non consideravo
l'INI per il servizio che usa il database :-)
Quanto alla configurazione, a me serve proprio quella superserver, e l'ho
ricavata tracciando i file installati dal setup originale e anche
implementando la registrazione dei servizi: sto preparando il pacchetto per
un gruppo di installatori, pertanto la cosa migliore per me sarebbe quella
di dargli un eseguibilone che dentro tutto e ridurre al minimo, se non allo
zero, la manualità. (c'e' sempre qualche tonto che non sa come registrare e
attivare correttamente i servizi, costruire i database, ecc...)
-- 
Morde