Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Wie erstelle ich eine Firebird DB? (https://www.delphipraxis.net/56855-wie-erstelle-ich-eine-firebird-db.html)

Taladan 12. Nov 2005 12:28

Datenbank: Firebird • Zugriff über: keine Ahnung

Wie erstelle ich eine Firebird DB?
 
Wie erstelle ich eine Firebird DB? Über den mit den von Delphi gelieferten Datenbankmanager scheint das nicht zu gehen.

MagicAndre1981 12. Nov 2005 12:36

Re: Wie erstelle ich eine Firebird DB?
 
Schau mal nach dem IBExpert. Das Tool finde ich klasse.

Taladan 12. Nov 2005 12:48

Re: Wie erstelle ich eine Firebird DB?
 
Hab das tool mir gezogen und installiert. Trotzdem habe ich wieder nru eine Fehlermeldung.

Was mache ich falsch?
Database-> Create Database

Server -> local

Database -> c:\test.fdb

Client Library File -> gds32.dll

Username: Test
passwort: Test
Page Size: 16384
Charset: None

Fehlermeldung
Unsuccessful execution caused by unavaible resource.
unaviable database

marabu 12. Nov 2005 13:42

Re: Wie erstelle ich eine Firebird DB?
 
Hi Marco,

mit einem Tool ist das Erzeugen der Datenbank zu Testzwecken ganz komfortabel, aber auf der Maschine des zukünftigen Benutzers deiner Anwendung wirst du dann doch eine programmgestützte Lösung brauchen:

SQL-Code:
CREATE DATABASE 'c:\test.fdb' PAGE_SIZE 16384 DEFAULT CHARACTER SET ISO8859_1
Grüße vom marabu

Hansa 12. Nov 2005 14:52

Re: Wie erstelle ich eine Firebird DB?
 
Extra Programm schreiben, um DB lediglich zu erzeugen ? :shock:

Lasse folgendes Script in IBExpert laufen und fertig :
SQL-Code:
SET SQL DIALECT 3;

SET NAMES ISO8859_1;

CREATE DATABASE 'C:\test.fdb'
USER 'SYSDBA' PASSWORD 'masterkey'
PAGE_SIZE 4096
DEFAULT CHARACTER SET ISO8859_1;
Sollte es aus unerfindlichen Gründen nicht erwünscht sein, IBExpert zu installieren, dann kann man die DB eben so erzeugen : "IBEscript create.sql".

Ralf Kaiser 12. Nov 2005 15:11

Re: Wie erstelle ich eine Firebird DB?
 
Zitat:

Zitat von Taladan
Username: Test
passwort: Test
Page Size: 16384
Charset: None

Fehlermeldung
Unsuccessful execution caused by unavaible resource.
unaviable database

Hi,

existiert den ein Benutzer "Test" mit dem Kennwort "test"? Wenn nicht, lege erst einen solchen Benutzer an (geht auch mit IBExpert) und versuche es dann noch einmal.

Ansonsten kannst du die Datenbank mit User "SYSDBA" und Kennwort "masterkey" erzeugen. Den Benutzer für die Datenbank kannst du hinterher immer noch ändern, falls gewünscht.

Ciao,
Ralf

Taladan 12. Nov 2005 18:46

Re: Wie erstelle ich eine Firebird DB?
 
:gruebel: Ist das den alles Notwendig? Das ist doch viel zu viel Aufwand nur um EINE Datei zu erstellen wo man später ein paar Tabellen mit ein paar dutzend Datensätzen reinpackt, und nur einfach und bequem darauf zu greifen will. Die Frage, die mich da am meisten beschäftigt, was muß ich später bei so umständlichen erstellen bis hin zum Zugriff alles auf den PC des Nutzers installieren, nur um ein simples Freewareprogramm nutzen zu können, was evtl eh schnell wieder von der Platte fliegt. Des weiteren frage ich mich, wie groß das wohl später alles werden soll...

kiar 12. Nov 2005 18:55

Re: Wie erstelle ich eine Firebird DB?
 
Zitat:

Zitat von Taladan
Wie erstelle ich eine Firebird DB?

Diese frage wurde schon weiter oben zur genüge erklärt.

Zitat:

Zitat von Taladan
:gruebel: Ist das den alles Notwendig? Das ist doch viel zu viel Aufwand nur um EINE Datei zu erstellen wo man später ein paar Tabellen mit ein paar dutzend Datensätzen reinpackt, und nur einfach und bequem darauf zu greifen will.

Diese Frage musst du dir selber beantworten, oder sagen, über was für Datenmengen wir hier sprechen.

raik

kiar 12. Nov 2005 18:56

Re: Wie erstelle ich eine Firebird DB?
 
edit// zweimal gesendet, DP war zu langsam :mrgreen:

Taladan 12. Nov 2005 19:09

Re: Wie erstelle ich eine Firebird DB?
 
Dann formuliere ich einfach mal um. Was muß ich später alles beachten WENN ich das Programm weiter geben will?

marabu 12. Nov 2005 19:46

Re: Wie erstelle ich eine Firebird DB?
 
Du kannst die Datenbank unter bestimmten Rahmenbedingungen einfach beim Programmstart erzeugen, wenn dein Programm sie nicht findet. Oder du triggerst die Erzeugung durch einen Kommandozeilen-Schalter. Oder du erzeugst eine Leer-Datenbank auf der Entwicklungsmaschine und installierst sie dann zusammen mit deiner Anwendung. Oder...

marabu

Ralf Kaiser 12. Nov 2005 20:00

Re: Wie erstelle ich eine Firebird DB?
 
Zitat:

Zitat von Taladan
Die Frage, die mich da am meisten beschäftigt, was muß ich später bei so umständlichen erstellen bis hin zum Zugriff alles auf den PC des Nutzers installieren, nur um ein simples Freewareprogramm nutzen zu können, was evtl eh schnell wieder von der Platte fliegt. Des weiteren frage ich mich, wie groß das wohl später alles werden soll...

Halli Hallo,

gerade bei Firebird ist das eigentlich ganz einfach: Mit "Embedded Firebird" gibt es eine spezielle Version des Datenbankservers bei dem einfach nur eine DLL (firebird.dll, bzw. umbenannt nach gds32.dll wenn z.B. IBX benutzt wird) in das Programmverzeichnis der Anwendung kopiert wird. Das wars. Keine Installation oder Konfiguration der Datenbank mehr nötig. Ich habe das bisher immer benutzt um Vorversionen oder Beta-Versionen beim User lokal zu testen ohne ein "echtes" Datenbanksetup zu bauen.

Der einzige "Nachteil" ist, daß eine Datenbank die so installiert wurde nicht mehr per Netzwerk von anderen Rechnern aus angesprochen werden kann, was aber in deinem Anwendungsfalle wohl kaum als Nachteil zu betrachten ist, oder?

Zum Erzeugen einer leeren Datenbank während der Laufzeit gab es hier schon SQL-Skripte in diesem Thread zu sehen. Diese kann das Programm beispielsweise mit der TIBSQLScript-Komponente ausführen um eine Datenbank zu erzeugen. Alternativ dazu könntest du eine leere Datenbank erzeugen, als Resource zum Programm linken und bei Bedarf einfach auf die Platte schreiben.

Ist also garnicht so schlimm wie es anfänglich aussieht! :-D

Ciao,
Ralf

Taladan 13. Nov 2005 14:41

Re: Wie erstelle ich eine Firebird DB?
 
Ich habe immer noch Probleme:

Was ich kann.
Über den Datenmanager eine Verbindung zu einer existirenden Datenbank aufbauen, wenn der Server läuft. Diese wie üblich benutzen über die .net BDE.

Doch wie nutze ich das ganze jetzt als Embetted ohne server? Geht das dann überhaupt in verbindung mit der BDE?

Die von dir erwähnte firebird.dll habe ich nicht. Ich habe eine Firebirdsql.data.Firebird.dll für .net. Diese ist als Recource eingebunden (local kopieren). (daher will mein IBX wohl auch nicht, wobei er auch die Datei aus den System32 Ordner namens gds32.dll nicht mag).
Die Kompo TIBSQLScript gibt es in .Net leider nicht. Welche ist der Pendant in .Net?

MagicAndre1981 13. Nov 2005 14:55

Re: Wie erstelle ich eine Firebird DB?
 
BDE.net :shock: was'n das? Lass den ganzen Müll weg und nutze nur den ADO.NET Provider vom FireBird.

Es gibt in der Hilfe doch C# Beispiele, die du schnell nach D.NET ( :roll: ) protieren kannst.

Taladan 13. Nov 2005 15:06

Re: Wie erstelle ich eine Firebird DB?
 
Bin per Google-Suche auf diesen link in dieses Forum gelandet... Naja so klein kann die Welt sein
http://www.delphipraxis.net/internal...ct.php?t=33732
Doch leider funktioniert mein IBX immer noch nicht. Wo bekomme ich die richtige .dll her?

Ralf Kaiser 13. Nov 2005 15:55

Re: Wie erstelle ich eine Firebird DB?
 
Zitat:

Zitat von Taladan
Über den Datenmanager eine Verbindung zu einer existirenden Datenbank aufbauen, wenn der Server läuft. Diese wie üblich benutzen über die .net BDE.

Also du musst dich schon entscheiden, BDE oder .net??

Zitat:

Zitat von Taladan
Die von dir erwähnte firebird.dll habe ich nicht. Ich habe eine Firebirdsql.data.Firebird.dll für .net.

Das ist dann die Provider DLL für .net, allerdings wirst du immer noch eine firebird.dll bzw. gds32.dll benötigen. Diese sollte mit den Firebird-Server installiert werden!


Zitat:

Zitat von Taladan
Diese ist als Recource eingebunden (local kopieren).

Die Einstellung "Copy local" bindet eine DLL nicht als Resource ein! Dann wird die betreffende DLL nur in das "bin" Verzeichnis der ASP.NET Anwendung kopiert und kann so mit dem Deployment-Manager einfacher kopiert werden!


Zitat:

Zitat von Taladan
(daher will mein IBX wohl auch nicht, wobei er auch die Datei aus den System32 Ordner namens gds32.dll nicht mag).

Welche (Datei-)Grösse hat denn die GDS32.DLL im Systemverzeichnis? Um die 400 KB sollte die DLL des normalen Firebird-Servers sein. Ist sie ca.1,4MB gross ist es die DLL des Embedded Servers und hat dort nichts zu suchen.

Zitat:

Zitat von Taladan
(daher will mein IBX wohl auch nicht, wobei er auch die Datei aus den System32 Ordner namens gds32.dll nicht mag).

Nochmal: willst du jetzt mit IBX (also Win32) der .net auf die Datenbank zugreifen??? Ich bin etwas verwirrt... :?:

Ciao,
Ralf

MagicAndre1981 13. Nov 2005 16:06

Re: Wie erstelle ich eine Firebird DB?
 
Zitat:

Zitat von Alfi001

Nochmal: willst du jetzt mit IBX (also Win32) der .net auf die Datenbank zugreifen??? Ich bin etwas verwirrt... :?:

So richtig weiß ichs auch nicht, aber ich glaube er will mit D.NET auf eine FB-DB zugreifen :gruebel:

Taladan 13. Nov 2005 20:39

Re: Wie erstelle ich eine Firebird DB?
 
Was letztendlich rauskommt ist doch eine Datenbank in ein und den selben Format oder?

Ob ich nun diese über Win32, IBX, .net oder sonnst was angelegt habe.

Was ich will ist natürlich MEIN Programm in D.Net schreiben. Diese mit einen embetted Server. Doch was ich als gut erachtete, neben Delphi und mein eigenes Programm, die datei über ein freies Tool betrachten zu können (IBX).
So kann man ja Access Dateien auch per .Net oder Win32 ansteuern. Ändert ja letzlich nichts an der Datei. Ob diese nun per SQL, BDE oder Access selbst erstellt worden ist, ist ebenfalls egal.

Das problem mit dem embetted Server hab ich (fast) gelöst. Nu will ich aber IBX erstellen. Im IBX Server Verzeichnis habe ich nicht viele Dateien.

In Punkto .dll sind es fbclient.dll, ib_util.dll, msvcp60.dll und msvcrt.dll.

Meine GDS32.dll ist 416kb groß, also wohl die verkehrte... Nu stehe ich aber vor einen Problem. Die Richtige hab ich nicht, wo bekomme ich die her?

Taladan 13. Nov 2005 21:59

Re: Wie erstelle ich eine Firebird DB?
 
Ich habe nun lange mit IBX rumprobiert und eine .dll funktionert. Diese nennt sich fbclient.dll.

Nu läuft mein IBX endlich :bounce1:

MagicAndre1981 13. Nov 2005 22:04

Re: Wie erstelle ich eine Firebird DB?
 
Zitat:

Zitat von Taladan
Ich habe nun lange mit IBX rumprobiert und eine .dll funktionert. Diese nennt sich fbclient.dll.

Das ist ja die Client-Library des FB :roll: Also willst du nun doch ein Win32-Proggie schreiben und kein schönes .NET-Programm?

Taladan 13. Nov 2005 22:06

Re: Wie erstelle ich eine Firebird DB?
 
Falls es dir entgangen ist. Ich Sprach die ganze zeit von IB Experts und das ist doch ein Win32 anwendung. Die nur dazu da sein soll, die DB anzugucken...

MagicAndre1981 13. Nov 2005 22:08

Re: Wie erstelle ich eine Firebird DB?
 
Zitat:

Zitat von Taladan
Falls es dir entgangen ist. Ich Sprach die ganze zeit von IB Experts und das ist doch ein Win32 anwendung. Die nur dazu da sein soll, die DB anzugucken...

Achso, bei deinen Post ist das nicht so richtig rausgekommen :wink:

Hansa 13. Nov 2005 23:36

Re: Wie erstelle ich eine Firebird DB?
 
Zitat:

Zitat von Taladan
Ich Sprach die ganze zeit von IB Experts und das ist doch ein Win32 anwendung. Die nur dazu da sein soll, die DB anzugucken...

Taladan, so geht das doch nicht. 8) IBX ist das, was in Delphi in der Komponentenpalette unter "Interbase" zu finden ist. IBExpert enthält zwar auch ein X aber das ist auch alles. Mit IBExpert legt man eine DB an und liefert sie eben leer aus. Alternative, wie bereits gesagt : IBEScript laufen lassen. Dein Programm muß dann mit Hilfe der IBX-Komponenten darauf zugreifen können und das wars. Wenn Du sehr viel Zeit übrig hast, dann programmiere IBExpert eben teilweise nach und erstelle überflüssigerweise die DB mit eigenem Programm.


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