AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Test auf Vorhandensein einer Serverinstanz
Thema durchsuchen
Ansicht
Themen-Optionen

Test auf Vorhandensein einer Serverinstanz

Ein Thema von texmurphy901 · begonnen am 9. Feb 2007 · letzter Beitrag vom 12. Feb 2007
Antwort Antwort
texmurphy901

Registriert seit: 8. Nov 2006
35 Beiträge
 
#1

Test auf Vorhandensein einer Serverinstanz

  Alt 9. Feb 2007, 12:08
Datenbank: MSSQL • Version: 2006 • Zugriff über: ADO
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
  Mit Zitat antworten Zitat
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
947 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

Re: Test auf Vorhandensein einer Serverinstanz

  Alt 9. Feb 2007, 18:19
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.
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#3

Re: Test auf Vorhandensein einer Serverinstanz

  Alt 9. Feb 2007, 19:43
Hat deine Anwendung auch eine ADOConnection?
Falls nicht: umbauen.
Delphi-Quellcode:
try
   ADOConnection1.Connect;
except
   on E:Eception do
   begin
      E.Message := 'Fehler beim Verbinden mit der Datenbank'#13#10+
         E.Message;
      raise;
   end;
end;
Auf diese Weise kannst du alle Fehler bei der Datenbankverbindung abfangen, ohne allzutief auf Win API Ebene zu gehen.
Wichtig: vor dem Compilieren müssen alle Queries/Tables geschlossen sein. Auch ADOConnection.Cennected muss False sein.
Andreas
  Mit Zitat antworten Zitat
texmurphy901

Registriert seit: 8. Nov 2006
35 Beiträge
 
#4

Re: Test auf Vorhandensein einer Serverinstanz

  Alt 12. Feb 2007, 11:48
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
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

Re: Test auf Vorhandensein einer Serverinstanz

  Alt 12. Feb 2007, 15:56
Zitat von texmurphy901:
Ich verwende zwar keine ADOConnections sondern ADOQuery (da gibt es kein Connect)
Das war doch gerade meine Anregung ab sofort eine ADOConnection zu verwenden.
(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.
Andreas
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz