Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Firebird 1.5 embedded benutzen (https://www.delphipraxis.net/26281-firebird-1-5-embedded-benutzen.html)

DataCool 21. Jul 2004 13:18


Firebird 1.5 embedded benutzen
 
Hi Leute,

in dem großen Thread zu der verschiedenen Datenbanken, wird unter anderem auch die Lösung Firebird embedded diskutiert.
Ich habe jetzt gerade versucht über Zeos auf eine Datenbank zuzugreifen !
Jetzt habe ich bei mir auch einen Firebird Server installiert, solange der Server-Dienst läuft läuft auch meine App, aber wenn ich den Service beende bekomme ich leider keinen Zugriff mehr auf die DB.

Ich bekomme immer die Fehlermeldung : "Unable to complete network request to host 127.0.0.1"

Es ist doch richtig, wenn ich die folgenden Properties setze :

Database: Pfad auf den DB-File(habe schon als Endung .gdb und .fdb versucht)
Host: 127.0.0.1
Login: blabla
Password: blabla2
Loginprompt: false

Aber wo bekommt jetzt die App mit das die Embedded Version von Firebird benutzt werden soll ?
Die ganzen benötigten Files liegen im Programm Verzeichnis meiner App.

Wer kann mir weiter helfen ?

Hansa 21. Jul 2004 14:21

Re: Firebird 1.5 embedded benutzen
 
Das geht nur lokal. Im Netzwerk muß der "richtige" Server installiert sein. Ich benutze das z.B. um eine Demo zu installieren, ohne eine bestehende Interbase-Konfiguration zu stören.

Netzwerk ist ein ganz anderes Thema. 8)

DataCool 21. Jul 2004 14:31

Re: Firebird 1.5 embedded benutzen
 
Hi Hansa,

ich will ja auch nur lokal auf eine DB zugreifen, der Zugriff kann auch exklusiv sein.
Warum geht es nicht bei mir ? 127.0.0.1 ist doch lokal

Hansa 21. Jul 2004 14:42

Re: Firebird 1.5 embedded benutzen
 
Üblicherweise heißt die Festplatte C:, D: oder so ähnlich und nicht 17.132.132.499 :mrgreen:

P.S.: die Fehlermeldung sagt eigentlich schon genug. 8)

DataCool 21. Jul 2004 14:45

Re: Firebird 1.5 embedded benutzen
 
also soll ich bei Host den Pfad zur DB eintragen ?

Lemmy 21. Jul 2004 15:02

Re: Firebird 1.5 embedded benutzen
 
Hi,

ich kenne die Zeos nicht, aber versuch mal beim Host gar nix einzutragen.... Win Zugriff über 127.0.0.1 ist nämlich nicht dasselbe wie ein lokaler Zugriff!!!

Grüße
Lemmy

Hansa 21. Jul 2004 21:14

Re: Firebird 1.5 embedded benutzen
 
Ich verstehe die Frage sowieso nicht. Ich nehme eine Database, eine Transaction und ein Dataset (mit FIBplus). Der Database ordne ich deb richtigen Dateinamen zu und halt dann der Rest. Für irgendwas anzuzeigen eben noch ein DBgrid und eine Datasource. Das geht immer ! :P

mischerr 21. Jul 2004 21:30

Re: Firebird 1.5 embedded benutzen
 
Also wenn ich das richtig verstanden hab, dann hast Du Dir FB-Server installiert. Um aber den Embedded-Server zu nutzen ist dies an sich nicht nötig. Lade dir FB-Embedded herunter und kopier die darin enthaltete fbembedded.dll (Name aus'm Kopf - Ohne Gewähr) in Dein App-Verzeichniss und nenne sie um nach fbclient.dll. Dies steht auch in der Doku zum Embedded-Server. Du brauchst im App-Verzeichniss u.a.:

\fbclient.dll
\firebird.msg
\intl\fbintl.dll
\udf\fbudf.dll
\udf\fbudf.sql
\udf\ib_udf.dll
\udf\ib_udf.sql

Um Dich dann mit dem Server über TZConnection zu verbinden:
Code:
ZConnection.Database:= szMyDBFile; // Absolut, also z.B. 'C:\myDB.fdb' und keine IP und auch kein UNC-Name!
ZConnection.Connect;
...und dann wie gewohnt mit z.B. TZQuery:
Code:
Query.Connection:= ZConnection;
//...
Ach ja: Etwas tricky ist das Anlegen einer neuen DB mittels Zeos. Ein kleines Beispiel:
Code:
ZConnection.Properties.Clear;
ZConnection.Properties.Text:= 'createNewDatabase=CREATE DATABASE '''+DBName+''' PAGE_SIZE=8192 USER ''SYSDBA'' PASSWORD ''masterkey''; exit;';
try
  ZConnection.Connect;
  // Ok
except
  // Fehler
end;
ZConnection.Properties.Clear;
Hoffe das hilft weiter.

Grüsse!

DataCool 21. Jul 2004 23:11

Re: Firebird 1.5 embedded benutzen
 
Hi,

also mein Problem ist folgendes :
Normalerweise benutze ich immer die CS-Version von Firebird, jetzt möchte ich aber in einem neuen Projekt die Firebird embedded Version benutzen, dazu verwende ich die Komponenten von Zeos(TIBDatabase, TIBSQlTRansact,TIbSqlTable, TIbSqlQuery).

Wenn ich mir jetzt eine kleine Test-Anwendung zusammen klicke und bei TIbDatabase folgende Properties setze :

Database=c:\Test\myDb.fdb
Host=127.0.0.1 oder gar nix eingetragen
Login=blabla
Password=keine Ahnung
LoginPrompt=false

und dann connected auf true setzen will, funktioniert das nur wenn der Firebird Server Dienst läuft.
Die benötigten Dateien für die embedded version befinden sich im Anwendungsverzeichnis, muss ich in diesen Dateien noch irgentwas einstellen ?
Oder muss ich was anderes bei den oben genannten Properties einstellen ?
Wenn ich bei Host 127.0.0.1 eintrage bekomme ich die Fehlermeldung :
"Unable to complete network to host 127.0.0.1"
Wenn ich den Host leer lasse bekomme ich die Fehlermeldung :
"unavaiable database"
Was mache ich falsch ?
Woher weiß die TIbDatabase Komponente das die embedded dll benutzt werden muss ?

DataCool 21. Jul 2004 23:36

Re: Firebird 1.5 embedded benutzen
 
Hi,

es hat niemand gesagt das das ganze nur zur Laufzeit funktioniert :wall:

Also zur DesignTime connected auf true setzen bringt oben genannte Fehlermeldungen.

Zur Laufzeit connected auf true setzen oder .connect aufrufen funktioniert jetzt einwandfrei :wall:

Jetzt kann ich normal weiter arbeiten :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:40 Uhr.
Seite 1 von 2  1 2      

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