Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Firebird embedded Server mit IBObjects und PE 2005 (https://www.delphipraxis.net/98542-firebird-embedded-server-mit-ibobjects-und-pe-2005-a.html)

hoika 29. Aug 2007 08:54

Re: Firebird embedded Server mit IBObjects und PE 2005
 
Hallo,

um noch mal zur Frage zurückzuukommen,

Welche IBObjects-Version ?

FB2 wurde erst sehr spät unterstützt (siehe entwickler-forum.de)


Heiko

dataspider 29. Aug 2007 09:07

Re: Firebird embedded Server mit IBObjects und PE 2005
 
Hallo Programmer Joe,

versuche mal, die Client - Bibliothek direkt anzugeben.
geänderter Ausschnitt meiner DPR:

Delphi-Quellcode:
uses
  Forms,
  // wegen IB_GetClientLibNameFunc
  IB_Session,
  ...

function GetFBClientLibName: string;
  begin
    // DLL - Dateiname mit kompl. Path
    Result := 'lw:\path\fbembed.dll';
  end;

{$R *.res}

begin

  IB_GetClientLibNameFunc := GetFBClientLibName;

  Application.Initialize;

  if not LoginDialog then
  begin
    // Achtung, sonst Exception, wird nicht ganz fertig
    Application.ProcessMessages;
    Exit;
  end;

  Application.CreateForm(TFRMMain, FRMMain);
  Application.Run;
Vielleicht hilft es ja,

Frank

TBx 29. Aug 2007 10:09

Re: Firebird embedded Server mit IBObjects und PE 2005
 
@mkienzler: tschuldigung, hab Deinen Kommentar leider mit zu dem Gestänkere eines anderen Forenusers hinzugezogen
@Hansa: In der Tat hat IBObjects eigene DBEdit, DBLookupCombo etc, eben für das IBObjects eigene Dataset.
@Hoika: Den Connect zu einer FB2.0 Datenbank haben auch die älteren IBO-Versionen geschafft, die Probleme kamen dann erst in den entsprechenden Statements auf.
@Threadersteller: Welche Zusatzprogramme nutzt Du und wie arbeitest Du mit denen?

Gruß
onlinekater

ProgrammerJoe 29. Aug 2007 18:57

Re: Firebird embedded Server mit IBObjects und PE 2005
 
Ja, ich habe tatsächlich fb embedded 2.0 und die fbembed.dll in fbclient.dll, so wie es in der readme stand, umbenannt.

Ich habe http://www.ibobjects.com/IBO4_8_7_Eval.zip

Mit Zusatzprogrammen meine ich zum Beispiel IB_SQL.

@dataspider: danke für Dein Beispiel, das funktioniert bei mir zur Laufzeit und damit kann ich Daten auslesen.

Gibt es eine Möglichkeit, schon zur Designzeit im Objektinspektor eine Verbindung herzustellen?

Was meinst Du mit LoginDialog, bzw was muss ich dafür einbinden? LoginPrompt? Warum hast Du dieses if-statement eingebaut?

dataspider 29. Aug 2007 20:02

Re: Firebird embedded Server mit IBObjects und PE 2005
 
Zitat:

Zitat von ProgrammerJoe
Was meinst Du mit LoginDialog, bzw was muss ich dafür einbinden? LoginPrompt? Warum hast Du dieses if-statement eingebaut?

Vergiß den Code ab Application.Initialize.
Der Rest entstammt von Copy and Paste - war nur zu faul, die Zeilen zu löschen.
Ich verlasse die Anwendung ohne das MaimForm zu erzeugen, wenn die Anmeldung nicht erfolgreich war.

Aber zur Frage Verbindung zur Entwurfszeit:

Wenn im Windows Systemverzeichnis eine fbclient.dll liegt, wird diese verwendet, auch wenn im Anwendungsverzeichnis ebenfalls eine fbclient.dll liegt. Die DLL im WinSys hat also Vorrang.

Daher solltest du prüfen, welche gds32.dll bzw. fbclient.dll Dateien auf deinem Rechner liegen.
Wenn du die fbembed.dll z.B. in fbclient.dll umbenennst und ins Windows Systemverzeichnis kopierst, sollte es auch zur Entwurfszeit funktionieren.

Cu, Frank

Hansa 29. Aug 2007 20:17

Re: Firebird embedded Server mit IBObjects und PE 2005
 
Zitat:

Zitat von dataspider
Wenn im Windows Systemverzeichnis eine fbclient.dll liegt, wird diese verwendet, auch wenn im Anwendungsverzeichnis ebenfalls eine fbclient.dll liegt. Die DLL im WinSys hat also Vorrang.

Seit wann denn das ? :shock:

mkinzler 29. Aug 2007 20:19

Re: Firebird embedded Server mit IBObjects und PE 2005
 
Nein, die Dll im Anwenderverzeichnis hat Vorrang.

TBx 29. Aug 2007 20:24

Re: Firebird embedded Server mit IBObjects und PE 2005
 
Zitat:

Zitat von dataspider
Wenn im Windows Systemverzeichnis eine fbclient.dll liegt, wird diese verwendet, auch wenn im Anwendungsverzeichnis ebenfalls eine fbclient.dll liegt. Die DLL im WinSys hat also Vorrang.

Das stimmt so nicht.
Es wird über LoadLibrary versucht, die entsprechende Client-DLL zu laden.
Und da hat das Applicationsverzeichnis auf jeden Fall vorang vor dem Windows-Verzeichnis.
Eine Besonderheit gibt es allerdings: Es wird erst versucht, die fbclient zu laden, wenn das nicht klappt, wird versucht, die gds32 zu laden (wenn man nicht im Programm die entsprechende dll selbst zuweist). Dadurch ist es natürlich möglich, dass eine im Windows-Verzeichnis liegende fbclient angezogen wird, obwohl im Programmverzeichnis eine gds32 liegt.

Gruß

onlinekater

dataspider 30. Aug 2007 14:10

Re: Firebird embedded Server mit IBObjects und PE 2005
 
@Hansa, mkinzler, onlinekater

Ihr habt natürlich alle recht. Der Satz mit dem Vorrang was Quatsch.
Aber es ging um Connection zur Entwurfszeit.
Und dabei muss man dennoch darauf achten, das im Windows Systemverzeichnis die richtige dll liegt.

Die Frage ist, ob ein Firebird Server auf dem Entwicklungsrechner installiert ist und läuft.
In diesem Fall würde ich zur Entwurfszeit klassisch zugreifen.

Wenn aber kein Server laufen soll (warum auch immer), su muss ich dafür sorgen, dass alle benötigten Dateien der Delphi IDE zur Verfügung stehen. Das betrifft z.B. auch die fbintl.dll zur Unterstützung der CharSet's.
Somit muss z.B. auch das Verzeichnis intl von Firebird z.B. ins Bin-Verzeichis von Delphi kopiert werden.

Cu, Frank

Hansa 30. Aug 2007 14:22

Re: Firebird embedded Server mit IBObjects und PE 2005
 
Zitat:

Zitat von dataspider
Somit muss z.B. auch das Verzeichnis intl von Firebird z.B. ins Bin-Verzeichis von Delphi kopiert werden.

Das stimmt ja schon wieder nicht. :mrgreen: TDatabase kriegt ja einen Namen zugewiesen. Steht der komplette Pfad da drin, dann ist INTL davon ein Unterverzeichnis. Steht nur der Dateiname da drin, dann muss INTL ein Unterverzeichnis, des Ordners sein, in dem das Programm liegt. Obwohl, muss INTL nicht sowieso ins Programmverzeichnis ? ? :gruebel: Zumindest hat das nichts in irgendeinem Delphi-Vereichnis zu suchen. Da wird eventuell ein Suchpfad hin gesetzt werden. Ohne Delphi wirst du dann aber dumm dastehen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:44 Uhr.
Seite 2 von 3     12 3      

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 by Thomas Breitkreuz