![]() |
Datenbank: MSSQL • Version: 2006 • Zugriff über: ADO
Test auf Vorhandensein einer Serverinstanz
Hallo allerseits,
ich habe da ein kleines Problem: Ich schreibe ein Programm, welches auf MSSQL Server zugreifen soll. Der Connection-String wird aus einer INI-Datei nachgeladen. Jetzt suche ich eine Möglichkeit bei Programmstart zu testen, ob die im Connection-String genannte Datenbankinstanz (z.B: RECHNER1/MSSQL1) überhaupt existiert oder erreichbar ist. Ich habe es bisher vergeblich versucht, das OPEN der ADOQuery in einem try..except zu kapseln aber das Programm schmiert dabei nur ab. Daher möchte ich den Test gern als allererstes nach Programmstart durchführen!! Gibt es da einen geeigneten Weg?!?! Danke an alle Murphy |
Re: Test auf Vorhandensein einer Serverinstanz
Hallo,
es gibt in der NetApi32.Dll die Funktion NetServerEnum, Level 101. Damit bekommtst Du raus ob der angegebene Server (SV_TYPE_SQLSERVER) überhaupt ein SQLServer ist. |
Re: Test auf Vorhandensein einer Serverinstanz
Hat deine Anwendung auch eine ADOConnection?
Falls nicht: umbauen.
Delphi-Quellcode:
Auf diese Weise kannst du alle Fehler bei der Datenbankverbindung abfangen, ohne allzutief auf Win API Ebene zu gehen.
try
ADOConnection1.Connect; except on E:Eception do begin E.Message := 'Fehler beim Verbinden mit der Datenbank'#13#10+ E.Message; raise; end; end; Wichtig: vor dem Compilieren müssen alle Queries/Tables geschlossen sein. Auch ADOConnection.Cennected muss False sein. |
Re: Test auf Vorhandensein einer Serverinstanz
Hallo,
erstmal besten Dank für die Tipps. Probiere gleich mal den Tip von shmia aus. Ich verwende zwar keine ADOConnections sondern ADOQuery (da gibt es kein Connect), aber prinzipiell sollte es ja auch funktionieren. Murphy |
Re: Test auf Vorhandensein einer Serverinstanz
Zitat:
(Also den Sourcecode umbauen) Nur so hast du die Datenbankverbindung voll unter Kontrolle. Selbst wenn du nur eine einzige ADOQuery hast, ist dieses Vorgehen von Vorteil. Wenn du keine explizite ADOConnection verwendest, dann baut die VCL im Hintergrund eine auf und dir fehlt die Kontrolle. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:09 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-2025 by Thomas Breitkreuz