AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken ADOConnection Servernamen ermitteln...
Thema durchsuchen
Ansicht
Themen-Optionen

ADOConnection Servernamen ermitteln...

Ein Thema von Panschi · begonnen am 28. Sep 2011 · letzter Beitrag vom 29. Sep 2011
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von Panschi
Panschi

Registriert seit: 30. Aug 2011
Ort: Sauerland
51 Beiträge
 
Delphi XE2 Enterprise
 
#1

ADOConnection Servernamen ermitteln...

  Alt 28. Sep 2011, 08:59
Datenbank: MSQL • Version: 2005 • Zugriff über: ADO
Wie der Titel schon beschreibt baue ich eine Verbidung mit einem Server auf und wähle eine Datenbank aus, welche dann im späteren Verlauf des Programmes noch bearbeitet wird etc... Jedoch würde ich zur Übersicht gerne einen "Infokasten" einfügen in dem der Servername und die angewählte Datenbank stehen. Wie ich den Namen der Datenbank herausbekomme ist kein Problem,
(ADOConnection.DefaultDatabase), jedoch finde ich keine Möglichket den Server herauszusuchen.
Warum mögen Frauen OOP-Programmierer? Weil sie Klasse haben
  Mit Zitat antworten Zitat
FredlFesl

Registriert seit: 19. Apr 2011
293 Beiträge
 
Delphi 2009 Enterprise
 
#2

AW: ADOConnection Servernamen ermitteln...

  Alt 28. Sep 2011, 09:03
Hi, das steht im ConnectionString drin.
Das Bild hängt schief.
  Mit Zitat antworten Zitat
Benutzerbild von Panschi
Panschi

Registriert seit: 30. Aug 2011
Ort: Sauerland
51 Beiträge
 
Delphi XE2 Enterprise
 
#3

AW: ADOConnection Servernamen ermitteln...

  Alt 28. Sep 2011, 09:10
stimmt... dann baue ich jetzt mal ne Funktion um nur den Servernamen rauszufiltern
Warum mögen Frauen OOP-Programmierer? Weil sie Klasse haben
  Mit Zitat antworten Zitat
Benutzerbild von Panschi
Panschi

Registriert seit: 30. Aug 2011
Ort: Sauerland
51 Beiträge
 
Delphi XE2 Enterprise
 
#4

AW: ADOConnection Servernamen ermitteln...

  Alt 28. Sep 2011, 09:59
habe jetzt eine Prozedur geschrieben, welche den Data Source Teil, welcher sich im Connection string zwischen dem 4. und dem 5. ";" befindet, rauskopiert. Der resultierende String fängt an der richtigen Stelle an, endet aber zu weit hinten
Hier mein bisheriger quelltext:

Delphi-Quellcode:
procedure TFMain.ServerNamen(const Con: TADOConnection);
var Verbindung: string;
    i, u: Integer;
    Start, Ende: Integer;

begin
  ServerName := '';
  Verbindung := Con.ConnectionString;
  u := 0;

  for i := 0 to length(Verbindung)-1 do
  begin
    if Verbindung[i] = ';then
    begin
      u := u + 1;

      if u = 4 then
      begin
        Start := i;
      end;

      if u = 5 then
      begin
        Ende := i-1;
      end;

    end;
  end;

  for i := Start to Ende do
  begin
    if Verbindung[i] = '=then
    begin
      Start := i + 1;
      Break;
    end;
  end;

  ServerName := Copy(Verbindung, start, ende);
end;
Edit: Die Varialbe u zählt in der Prozedur die vorkommenden ";"
Warum mögen Frauen OOP-Programmierer? Weil sie Klasse haben

Geändert von Panschi (28. Sep 2011 um 10:03 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: ADOConnection Servernamen ermitteln...

  Alt 28. Sep 2011, 10:32
Wieso suchst Du nicht einfach nach "Remote Server=" und kopierst ab da bis zum nächsten Semikolon oder bis zum Stringende, falls kein Semikolon mehr kommt?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
espen

Registriert seit: 29. Aug 2003
Ort: Karlsruhe
17 Beiträge
 
#6

AW: ADOConnection Servernamen ermitteln...

  Alt 28. Sep 2011, 10:35
Hallo,

Du benutzt ja MSSQL, erstelle ein TADOQuery mit folgendem SQL-Text:
Code:
select @@servername as SRVName
und in z.B. Fields[0].asstring hast Du dann den Servernamen.

Grüßle
  Mit Zitat antworten Zitat
Benutzerbild von Panschi
Panschi

Registriert seit: 30. Aug 2011
Ort: Sauerland
51 Beiträge
 
Delphi XE2 Enterprise
 
#7

AW: ADOConnection Servernamen ermitteln...

  Alt 28. Sep 2011, 11:51
@DeddyH: das probiere ich ja in etwa. Ich weiß, dass im connectionstring der teil den ich haben will zwischen dem 4. und dem 5. Semikolon steht. Deswegen setze ich den "start" an die Position hinter dem 4. und das "ende" vor das 5.. Dann wird in diesem eingegrenzten Stück nach dem '=' gesucht, denn es steht ja immer Data Source=... und der Start-Wert wird hinter das '=' verschoben... also habe ich theoretisch den Bereich in dem sich meine Daten befinden gefunden und kann die Daten einfach rauskopieren...
Komisch ist nur, dass mir beim setzen eines Breakpoints für den startwert 111 und für den endwert 130 angegeben werden. Was auch logisch ist, denn die Zeichen des Servernamens sind wirklich 19! Jedoch gibt er mir bei der Ausgabe zuviel heraus
Warum mögen Frauen OOP-Programmierer? Weil sie Klasse haben
  Mit Zitat antworten Zitat
Benutzerbild von Panschi
Panschi

Registriert seit: 30. Aug 2011
Ort: Sauerland
51 Beiträge
 
Delphi XE2 Enterprise
 
#8

AW: ADOConnection Servernamen ermitteln...

  Alt 28. Sep 2011, 12:17
Hab den Fehler gefunden Das Problem war die Copy Funktion. Habe gedacht, dass man den string angibt den anfangspunkt und den endpunkt, aber man muss ja den string, den anfangspunkt und die Länge des stringteiles angeben
Hier mein verbesserter Code, falls jemand ähnliches irgenwann, irgendwie, irgendwo benötigt:

Delphi-Quellcode:
procedure TFMain.ServerNamen(const Con: TADOConnection);
var Verbindung: string;
    i, u: Integer;
    Start, Ende: Integer;

begin
  ServerName := '';
  Verbindung := Con.ConnectionString;
  u := 0;

  for i := 0 to length(Verbindung)-1 do
  begin
    if Verbindung[i] = ';then
    begin
      u := u + 1;
      if u = 4 then
      begin
        Start := i;
      end;
      if u = 5 then
      begin
        Ende := i;
      end;
    end;
  end;

  for i := Start to Ende do
  begin
    if Verbindung[i] = '=then
    begin
      Start := i + 1;
      Break;
    end;
  end;

  ServerName := Copy(Verbindung, start, Ende-start);
end;
Danke für eure Hilfe
Warum mögen Frauen OOP-Programmierer? Weil sie Klasse haben
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: ADOConnection Servernamen ermitteln...

  Alt 28. Sep 2011, 12:19
Ich bin nicht besonders fit in ADO, aber kann der Servername nicht auch z.B. zwischen dem 2. und 3. Semikolon stehen? Oder ist die Reihenfolge der Parameter nicht beliebig?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Panschi
Panschi

Registriert seit: 30. Aug 2011
Ort: Sauerland
51 Beiträge
 
Delphi XE2 Enterprise
 
#10

AW: ADOConnection Servernamen ermitteln...

  Alt 28. Sep 2011, 12:29
wenn das so wäre, dann müsste ich tatsächlich nach "Data Source=...;" suchen. Ich greife auf einen Server zu, den ich auf dem gleichen Rechner starte. hmm...
Dann müsste ich ja theoretisch den Connectionsstring in ;...; bröckenchen in ein Array schreiben und dann die ersten 12 Buchstaben mit "Data Source=" vergleichen.
Ich gebe mich mal dran, dann ist man auf jedenfall auf der sicheren Seite
Warum mögen Frauen OOP-Programmierer? Weil sie Klasse haben
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 15:31 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