Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Installationsprogramm: Frage bzgl. Microsoft SQL Server 2005 (https://www.delphipraxis.net/89677-installationsprogramm-frage-bzgl-microsoft-sql-server-2005-a.html)

PLATON 4. Apr 2007 01:13

Datenbank: Microsoft SQL Server • Version: 2005 Express Edition • Zugriff über: ADO

Installationsprogramm: Frage bzgl. Microsoft SQL Server 2005
 
Hallo Forum,

ich habe ein kleines Problem. Und zwar schreibe ich zur Zeit ein Installationsprogramm für eine Software und muss neben dieser Software auch den Microsoft SQL Server 2005 (Express Edition) mitinstallieren. Klappt auch alles wunderbar, allerdings hätte ich gerne einen Rückgabewert vom Server-Setup-Programm oder eine andere Möglichkeit um zu überprüfen, ob die Installation des Server auch funktioniert hat.

Ich gehe in meinem Programm folgendermaßen vor:

Benutzt wird SQLEXPR32_DEU.EXE für das Server-Setup.

Für den Aufruf innerhalb des Installationsprogramms habe ich diese Funktion:

Delphi-Quellcode:
function ProgrammAusfuehren(const szProgramm, szParameter : String) : Boolean;
var
  ShellExecuteInfo : TShellExecuteInfo;
  ProzessHandle   : DWORD;
begin
  Result := true;

  ZeroMemory(@ShellExecuteInfo, SizeOf(TShellExecuteInfo));

  with ShellExecuteInfo do
  begin
    cbSize      := SizeOf(TShellExecuteInfo);
    fMask       := SEE_MASK_NOCLOSEPROCESS or SEE_MASK_FLAG_DDEWAIT;
    Wnd         := GetActiveWindow();
    lpVerb      := 'open';
    lpParameters := PChar(szParameter);
    lpFile      := PChar(szProgramm);
    nShow       := SW_SHOWNORMAL;
  end;

  if not ShellExecuteEx(@ShellExecuteInfo) then
  begin
    Result := false;
    Exit;
  end
  else ProzessHandle := ShellExecuteInfo.HProcess;

  while WaitForSingleObject(ShellExecuteInfo.hProcess, 50) <> WAIT_OBJECT_0 do
    Application.ProcessMessages;

  CloseHandle(ProzessHandle);
end;
die ich dann so aufrufe:

Delphi-Quellcode:
ProgrammAusfuehren('PFAD...SQLEXPR_GER.EXE', '/settings PFAD...set.ini /qb');
nachdem ich die INI-Datei mit den entsprechenden Einträgen gefüllt habe:

[Options]
USERNAME=
COMPANYNAME=
INSTALLSQLDIR=""
ADDLOCAL=All
INSTANCENAME=""
SAPWD=""
SECURITYMODE=SQL
DISABLENETWORKPROTOCOLS=0


Wie gesagt, funktioniert super, aber ich wäre gern auf der sicheren Seite falls etwas daneben geht! Ich habe zwar schon eine Menge rumgegoogelt und auch versucht über die Installations-LOG-Dateien des Server-Setups eine entsprechende Rückmeldung zu bekommen, aber da ist mir bisher noch nichts gelungen. Hat eventuell jemand Erfahrung mit diesem Thema und kann mir ein paar Tipps geben?

Viele Grüße,
David

Bernhard Geyer 4. Apr 2007 07:14

Re: Installationsprogramm: Frage bzgl. Microsoft SQL Server
 
Startet das Setup evtl. noch ein (Eingebetteten Komprimierten) Installer? Afaik basiert doch dieser auf Windows-Installer technik. Evtl. kann man sich hier an irgendwelche Interfaces die im System definiert sind ranhängen.

Ralf Kaiser 4. Apr 2007 09:32

Re: Installationsprogramm: Frage bzgl. Microsoft SQL Server
 
Hi,

kannst du nicht nach der erfolgten Installation versuchen dich mit dem SQL Server zu verbinden (z.B. Testdatenbank anlegen und wieder löschen)? Klappt das nicht ist mit der Serverinstallation etwas schiefgelaufen (keine echte Lösung aber ein Workaround)

Ciao,
Ralf

PLATON 4. Apr 2007 09:45

Re: Installationsprogramm: Frage bzgl. Microsoft SQL Server
 
Erstmal vielen Dank für Eure Ideen.

@Bernhard: Du hast Recht. Die Setup-Datei extrahiert zuerst das eigentliche Setup-Programm, welches, soweit ich das sehen kann, auf MSI-Technik basiert. Ich werd mal nachschauen ob ich da was finden kann.

@Alfi001: Ja, so hatte ich mir das auch schon vorgestellt. Ich würd zwar lieber einfach einen Rückgabewert auswerten, aber wenn das alles nicht funktioniert werde ich auf diesen Workaround zurückgreifen!

Grüße,
David

mkinzler 4. Apr 2007 09:51

Re: Installationsprogramm: Frage bzgl. Microsoft SQL Server
 
Vielleicht gibt es auch ein Merge-Modul für den Setup


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:31 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz