Delphi-PRAXiS
Seite 1 von 2  1 2   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Herausfinden welche Firebird 3.0 32Bit- oder 64Bit Version installiert ist (https://www.delphipraxis.net/207959-herausfinden-welche-firebird-3-0-32bit-oder-64bit-version-installiert-ist.html)

Kostas 20. Mai 2021 12:09

Datenbank: Firebird • Version: 3.0 • Zugriff über: FIREDAC

Herausfinden welche Firebird 3.0 32Bit- oder 64Bit Version installiert ist
 
Hallo Zusammen,

wenn man auf ein fremdes System Firebird 3.0 bereits installiert vorfindet, wie kann man zuverlässig herausfinden ob es eine 32bit oder 64bit Installation ist?

IBExpert 20. Mai 2021 12:55

AW: Herausfinden welche Firebird 3.0 32Bit- oder 64Bit Version installiert ist
 
falls es eine default installation ist, dann ist das nicht so schwer, einfach in program files oder program files (x86)
firebird.exe im pfad firebird suchen, wenn da, dann ist das installiert, ob das als dienst installiert
ist findet man ggf in der registry.

ich würde aber nie eine fremde firebird installation mitbenutzen wollen, macht nur stress beim support

liefer einfach deine eigene version mit aus (inhalt der zip), nehme einen anderen als den 3050 default
port in der firebird conf und ruf ggf install_service.bat mit einem parameternamen deiner wahl auf,
dann heisst der dienst wie du willst

auf dem weg kannst du selber auch parallel mehrere Versionen betreiben auf einer winodws kiste

in den youtube videos hab ich dazu einiges gezeigt
https://www.youtube.com/user/IBExpertise/playlists

Kostas 20. Mai 2021 13:45

AW: Herausfinden welche Firebird 3.0 32Bit- oder 64Bit Version installiert ist
 
Firebird auf derselben Maschine mit unterschiedlichen Ports ist mit bekannt und mache ich auch genau so.
Ich installiere übrigens immer die 32Bit Version aus dem zip. Ich kopiere den Inhalt auf eine Partition und über .bar registriere ich den Service mit dem Namen.

Jetzt würde mich interessieren, wenn ich eine Installation unter c:\Firebird_3030 vorfinde, ob das eine 32bit oder 64bit Installation ist. IBExpert hat da schon ein Problem da es die 32bit Firebird.dll benötigt. Wenn ich mir im Explorer/Details die Firebird.dll oder Firebird.exe anschaue gibt es keinen Hinweis ob 32.bit oder 64.bit.

mkinzler 20. Mai 2021 13:59

AW: Herausfinden welche Firebird 3.0 32Bit- oder 64Bit Version installiert ist
 
Die Client-Dll ist nur für die (Client-)Anwendung wichtig. Mit einem 32-Bit-Client ( für 32-Bit Anwendungen) kann man problemlos auf einen 64bittigen Server zugreifen und umgekehrt.
Ich würde deshalb immer die 64-Bit Version installieren.

Kostas 20. Mai 2021 14:22

AW: Herausfinden welche Firebird 3.0 32Bit- oder 64Bit Version installiert ist
 
Sorry dass ich nochmals nachfrage,

es geht NUR darum heraus zu finden was installiert ist, 32bit oder 64bit.
Hat jemand eine Idee?

Delphi.Narium 20. Mai 2021 14:45

AW: Herausfinden welche Firebird 3.0 32Bit- oder 64Bit Version installiert ist
 
Firebird.exe lokalisieren und in der dann prüfen, ob zwei Byte hinter der Zeichenfolge PE ein D oder ein L steht.

L = 32 bit
D = 64 bit

https://www.codeproject.com/tips/107...-is-bit-or-bit
https://superuser.com/questions/3584...bit-on-windows
https://www.winhelponline.com/blog/f...bit-or-64-bit/
https://gist.github.com/MyITGuy/a0d462a6e218d1e5a940

Kostas 20. Mai 2021 14:54

AW: Herausfinden welche Firebird 3.0 32Bit- oder 64Bit Version installiert ist
 
perfekt und Dankeschön, damit komme ich klar. Ich war mir so sicher dass in irgend einer Config steht oder anhand der build Nummer zu erkenne ist. Anscheinend doch nicht.

Delphi.Narium 20. Mai 2021 15:50

AW: Herausfinden welche Firebird 3.0 32Bit- oder 64Bit Version installiert ist
 
Nur zum Spaß. Könnte man das so machen?
Delphi-Quellcode:
program CheckBitVersion;

{$APPTYPE CONSOLE}

uses
  SysUtils, Classes;

function IsExe64Bit(s : String) : Integer;
var
  fs    : TFileStream;
  buffer : Array [0..4095] Of Char;
  i     : Integer;
begin
  Result := -1;
  fs    := TFileStream.Create(s,fmOpenRead);
  Try
    fs.Read(buffer,SizeOf(Buffer));
    for i := Low(Buffer) to High(Buffer) - 5 do begin
      if (Buffer[i] = 'P') and (Buffer[i + 1] = 'E') then begin
        case Buffer[i + 4] of
          'D' : Result := 64;
          'L' : Result := 32;
        end;
        break;
      end;
    end;
  finally
    fs.Free;
  end;
end;

begin
  Write(ExtractFileName(ParamStr(1)),': ');
  if FileExists(ParamStr(1)) then begin
    ExitCode := IsExe64Bit(ParamStr(1));
    case ExitCode of
      64 : Write('64-Bit');
      32 : Write('32-Bit');
    else
      Write('unbekanntes Format');
    end;
    WriteLn(' (',ExtractFilePath(ParamStr(1)),')');
  end else begin
    WriteLn('existiert nicht');
    ExitCode := -2;
  end;
end.
Aufruf z. B.:
Code:
for %i in (c:\Firebird\*.exe) do @CheckBitVersion.exe %i
Ausgabe z. B.:
Code:
fbguard.exe: 32-Bit
fbsvcmgr.exe: 32-Bit
fbtracemgr.exe: 32-Bit
fb_lock_print.exe: 32-Bit
firebird.exe: 32-Bit
gbak.exe: 32-Bit
gfix.exe: 32-Bit
gpre.exe: 32-Bit
gsec.exe: 32-Bit
gsplit.exe: 32-Bit
gstat.exe: 32-Bit
instclient.exe: 32-Bit
instreg.exe: 32-Bit
instsvc.exe: 32-Bit
isql.exe: 32-Bit
nbackup.exe: 32-Bit
qli.exe: 32-Bit
unins000.exe: 32-Bit
Oder:
Code:
for %i in (c:\Firebird\*.dll) do @CheckBitVersion.exe %i
fbclient.dll: 32-Bit
fbrmclib.dll: 32-Bit
ib_util.dll: 32-Bit
icudt52.dll: 32-Bit
icuin52.dll: 32-Bit
icuuc52.dll: 32-Bit
msvcp100.dll: 32-Bit
msvcr100.dll: 32-Bit
zlib1.dll: 32-Bit
Oder:
Code:
c:\>CheckBitVersion.exe c:\Firebird\firebird.exe
firebird.exe: 32-Bit

c:\>echo %Errorlevel%
32
Und wenn man ein ganzes Laufwerk abgrasen will z. B. sowas:
Code:
for /F "delims=?" %i in ('dir c:\fbclient.dll /b /s') do @CheckBitVersion.exe "%i"
Kann dann aber auch mal ein bisserl dauern ;-)

lxo 20. Mai 2021 15:52

AW: Herausfinden welche Firebird 3.0 32Bit- oder 64Bit Version installiert ist
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ansonsten auch ganz einfach im Taskmanager zu sehen.
Einfach unter "Details", Rechte-Maustaste auf eine Spalte und auf "Spalten auswählen" klicken.
Dort die Spalte "Plattform" auswählen. Ganz praktisch finde ich auch immer die Spalte "Befehlszeile".

Siehe Screenshot.

Kostas 20. Mai 2021 16:25

AW: Herausfinden welche Firebird 3.0 32Bit- oder 64Bit Version installiert ist
 
Zitat:

Zitat von lxo (Beitrag 1489850)
Ansonsten auch ganz einfach im Taskmanager zu sehen.
Einfach unter "Details", Rechte-Maustaste auf eine Spalte und auf "Spalten auswählen" klicken.
Dort die Spalte "Plattform" auswählen. Ganz praktisch finde ich auch immer die Spalte "Befehlszeile".

Siehe Screenshot.

genau das ist ausreichend. :thumb:


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:08 Uhr.
Seite 1 von 2  1 2   

Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf