Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Eingesetzte Firebirdversion ermitteln (https://www.delphipraxis.net/153332-eingesetzte-firebirdversion-ermitteln.html)

erich.wanker 29. Jul 2010 12:35

Datenbank: Firebird • Version: 2.1.3 • Zugriff über: Zeos 6.6.6

Eingesetzte Firebirdversion ermitteln
 
Hallo Leute,

Um zu testen, ob Firebird läuft, versuch ich eine kleine testconnection (nur localhost).
Wenn ich connected bin, würd ich gerne herausfinden, welche Firebird-Version eingesetzt wird.
Hab mich schon gefreut, als ich bei TZConnection "ServerVersionStr" gefunden hab - aber das liefert immer 0.0.0 zurück ?

Wenn ich via Zeos eine Verbindung aufbaue, müsste es doch möglich sein, die Firebirdversion auszulesen?

Vielen Dank

Erich

Delphi-Quellcode:
exepfad:=extractfilepath(application.ExeName);

zconnection1.Database:=exepfad+'\connect.dat';
zconnection1.User:='SYSDBA';
zconnection1.Password:='masterkey';

zq:=0;  // 0 = alles im Ar%%h   1 = alles in Butter
try
zconnection1.Connect;
showmessage(zconnection1.ServerVersionStr); //liefert immer '0.0.0'
zconnection1.Disconnect;
zq:=1;
except
zq:=0;
end;

DeddyH 29. Jul 2010 12:43

AW: Eingesetzte Firebirdversion ermitteln
 
How to detect the server version?

erich.wanker 29. Jul 2010 15:28

AW: Eingesetzte Firebirdversion ermitteln
 
:oops:

Hab mir unter: http://www.koders.com/delphi/... die IBServices.pas Unit downgeloadet.

In der IBServices.pas gibt es:
TIBCustomService = class(TComponent) --> procedure FetchVersionInfo

Delphi-Quellcode:
procedure TIBServerProperties.FetchVersionInfo;
var
  RunLen: Integer;
  done: Integer;
begin
  ServiceQueryParams := Char(isc_info_svc_version) +
                        Char(isc_info_svc_server_version) +
                        Char(isc_info_svc_implementation);
  InternalServiceQuery;
..
..

..aber wie´s weiter geht ist :?:

Vielen Dank

Erich


Delphi-Quellcode:
SELECT rdb$get_context('SYSTEM', 'ENGINE_VERSION')
             as version from rdb$database;
möcht ich nicht verwenden, da es bei älteren FB´s nicht funktioniert.#

DeddyH 29. Jul 2010 17:04

AW: Eingesetzte Firebirdversion ermitteln
 
Ich benutze zur Zeit UIB, da kann ich mit der Methode InfoVersion der TJvUIBDataBase die Version ermitteln.

erich.wanker 30. Jul 2010 09:16

AW: Eingesetzte Firebirdversion ermitteln
 
Hab jetzt JvUIBDataBase drinnen. Leider finde ich "InfoVersion" nicht.
(AboutJVCL liefert "Version 3.00")

Hab ich die falsche version installiert?

Danke
Erich

Delphi-Quellcode:
  object JvUIBDataBase1: TJvUIBDataBase
    Params.Strings = (
      'sql_dialect=3'
      'lc_ctype=NONE'
      'sql_role_name=')
    LibraryName = 'gds32.dll'
    Left = 148
    Top = 60
  end

Lemmy 30. Jul 2010 09:19

AW: Eingesetzte Firebirdversion ermitteln
 
Hi,

heute ist nicht dein Tag ;-)

die JvUIB sind Sch****, marder alt und haben ein paar Bugs. btw: Wenn deine JVCL wirklich die 3.0 ist, dann solltest Du da auch updaten.
Besser ist es für UIB die originalen von der Webseite zu ziehen:
http://www.progdigy.com/

und noch besser ist es mit einem SVN-Client gleich die aktuellen Sourcen vom Repository zu ziehen
http://sourceforge.net/projects/uib/


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:19 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