![]() |
AW: ADOConnection Servernamen ermitteln...
Wie schon gesagt: such doch einfach im ConnectionString nach der Zeichenfolge (mit Pos/PosEx). Ab der Position kopierst Du dann.
|
AW: ADOConnection Servernamen ermitteln...
Nein das mußt Du nicht.
suche einfach nach "Data Source=" und Du hast den Startpunkt für den gesuchten Namen. Übrigens könnte der Servername ganz am Ende Deines ConnStrings stehen. Gruß K-H edith: zu spät!! |
AW: ADOConnection Servernamen ermitteln...
Es klappt und es ist mit DeddyHs Idee sogar kürzer und einfacher :-D
Vielen dank :thumb: Hier mein Quelltext:
Delphi-Quellcode:
procedure TFMain.ServerNamen(const Con: TADOConnection);
var Verbindung: string; i: Integer; Start: Integer; begin ServerName := ''; Verbindung := Con.ConnectionString; start := Pos('Data Source=', Verbindung); start := start+12; ServerName := ''; for i := start to length(verbindung)-1 do begin if Verbindung[i] = ';' then begin Break; end else begin Servername := Servername + Verbindung[i]; end; end; end; |
AW: ADOConnection Servernamen ermitteln...
Delphi-Quellcode:
Gruß
procedure TFMain.ServerNamen(const Con: TADOConnection);
var Verbindung: string; i: Integer; Start: Integer; begin ServerName := ''; Verbindung := Con.ConnectionString; start := Pos('Data Source=', Verbindung); start := start+12; ServerName := ''; for i := start to length(verbindung) do {--auch das letzte Zeichen sollte mitgenommen werden!} begin if Verbindung[i] = ';' then begin Break; end else begin Servername := Servername + Verbindung[i]; end; end; end; K-H |
AW: ADOConnection Servernamen ermitteln...
aber ein string ist doch nullterminiert, von daher wäre das letzte Zeichen eines 10-Zeichen langen strings das Zeichen mit dem Index 9!
|
AW: ADOConnection Servernamen ermitteln...
Nein, Strings gehen von 1 bis Length. Ich habe da auch noch einen Vorschlag (getippt und nicht getestet):
Delphi-Quellcode:
procedure TFMain.ServerNamen(const Con: TADOConnection);
const SUCHSTRING = 'Data Source='; var Verbindung: string; i: Integer; Start: Integer; begin Verbindung := Con.ConnectionString; ServerName := ''; Start := Pos(SUCHSTRING, Verbindung); if Start > 0 then begin Delete(Verbindung, 1, Start + Length(SUCHSTRING)); Start := Pos(';', Verbindung); if Start > 0 then Delete(Verbindung, Start, Length(Verbindung)); Servername := Verbindung; end; end; |
AW: ADOConnection Servernamen ermitteln...
Funktionert soweit einwandfrei, jedoch fängt er ein Zeichen weiter an als er soll!
|
AW: ADOConnection Servernamen ermitteln...
Wie meinen? Zeig doch mal das Original und dann das Ergebnis, dann sieht man wohl eher, wo der Fehler liegt.
|
AW: ADOConnection Servernamen ermitteln...
das Orginal is "WS-200-02\SQLEXPRESS"
Bei meiner Methode erscheint:"WS-200-02\SQLEXPRESS" Bei deiner Methode erscheint:"S-200-02\SQLEXPRESS" |
AW: ADOConnection Servernamen ermitteln...
Dann löschen wir ein Zeichen weniger:
Delphi-Quellcode:
Delete(Verbindung, 1, Start + Length(SUCHSTRING) - 1);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:12 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