Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Welche Datenbank und welcher Zugriff? (Upd:Firebird per IBX) (https://www.delphipraxis.net/137216-welche-datenbank-und-welcher-zugriff-upd-firebird-per-ibx.html)

Alphacodex 16. Jul 2009 12:18

Datenbank: Firebird • Version: 2.5 • Zugriff über: Delphi Interbase Komponenten

Welche Datenbank und welcher Zugriff? (Upd:Firebird per IBX)
 
Hallo,

das hatte ich mir irgendwie einfacher vorgestellt ;-)
Ich habe schon einige Sachen in Delphi programmiert, bin also grundsätzlich nicht unerfahren, wollte aber jetzt für unseren Betrieb eine kleine Datenbankanwendung schreiben. In Datenbankprogrammierung bin ich allerdings Neuling. Unsere aktuelle Lösung sind Excel-Tabellen mit mittlerweile recht komplexen VisualBasic Scripts, die ich geschrieben habe. Ich habe mich jetzt schon stundenlang durch die verschiedensten Foren gelesen und bin noch verwirrter als vorher.

Was mir mittlerweile klar ist, das ich zwei Entscheidugnen treffen muss:
- Welches Datenbank-Format ich nutzen will
- Welche Zugriffs-Engine ich nutzen will

In den Büchern die ich habe wir als Format öfters Paradox empfohlen, wobei ich nicht wirklich weiss warum und ob das für meine Anwendung auch das richtige ist

Als Zugriff wird in den Büchern meist die BDE empfohlen, wobei in den meisten Forum immer über die BDE geflamed wird: "Nicht mehr verwenden, total veraltet" usw.



Vielleicht beschreibe ich mal kurz was ich machen will:
- Also zunächst wird das Ganze erstmal nur lokal laufen (irgendwann vielleicht mit einem einzelnen Master-Server auf den die Clients dann übers Netzt zugreifen können).

- Die Komplexität der Datenbank ist überschaubar, es gibt eine Tabelle für unsere Mitarbeiter, eine für unsere Kunden und eine Stundenliste in der jeder Mitarbeiter einträgt wieviele Stunden er wann bei welchem Kunden war -> daraus wird dann die Rechnung an unsere Auftraggeber erzeugt. Das wars im Prinzip schon.

- Von der Größe her ist es ungefähr so: 10-20 aktive Mitarbeiter, 200-400 neue Kunden pro Jahr, ca 1000-2000 Einträge in der Stundenliste pro Jahr (Jeder Kundenkontakt jedes Mitarbeiters ist eine Zeile). Im Moment legen wir jedes Jahr eine neue Datei an, weil bei dieser Größenordnung Excel bei komlizierteres Zugriffen oder Abfragen schon in die Knie geht. Wäre natürlich schön wenn das nicht mehr nötig wäre...

- Von der Bedienung her möchte ich evtl. 2 Applikationen trennen. Eine zur kompletten Datenverwaltung und eine, die ich an die Mitarbeiter weitergebe mit der sie dann ihre Stunden eintragen können.

- Vorerst möchte ich aber keine Internetverbindung für die Mitarbeiter vorraussetzen, d.h. sie sollten mit ihrer Client-Applikation ihre Stunden eintragen können und die erzeugte Datei dann auf einem Stick mitbringen, der dann in die Hauptdatenbank eingelesen werden soll.

- Ich möchte eigentlich nicht noch etwas zusätzlich kaufen müssen und es wäre auch ungünstig, wenn die Mitarbeiter irgendwelche Datenbankengines auf ihren Rechnern installieren müssten nur um ihre Stunden einzutragen.

- Momentan sind alle Daten in Excel-Tabellen abgespeichert. Wäre natürlich cool, wenn ich die da einigermaßen unproblematisch importieren kann, notfalls müsste ich halt einen Importer oder sowas schreiben. (Ne Weile werde ich wohl beide Lösungen Excel und eigenes Datenbankprogramm parallel laufen lassen, bis ich alle Features drin habe und das Ganze stabil läuft)



Könnt ihr mir da was konkretes empfehlen??
Vielen vielen Dank bin echt völlig verwirrt...

Grüße
Codex

hoika 16. Jul 2009 12:26

Re: Bitte um Empfehlung...
 
Hallo,

da bietet sich z.B. Firebird an.

Die Mitarbeiter bekommen die Embedded-Version drauf (~ 1 DLL, keine Installation).
Am Anfang könnte auch die Haupt-DB embedded sein,
Umstieg auf Client-Server ist problemlos.

Zugriff über z.B. Zeos (kost nix), fibplus (kost was).


Zur BDE: nicht mehr nehmen, veraltet
zu Pdx: Ärger im Netz

Der Grund, warum Pdx mal empfohlen war, ist, es war frei verfügbar,
hatte ne Menge Features (viele Feldtypen, Views, Passwort)
und lief unter Novell eigentlich ganz gut.

Excel kann man per Ado auslesen.
War glaube ich hier vor kurzem auch ein Thema.

Der Export der Zeiten könnte als XML oder nur als reiner Text erfolgen.



Heiko
PS: jaja, ich weiss das Pdx in der BDE enthalten ist.

Alphacodex 16. Jul 2009 12:41

Re: Bitte um Empfehlung...
 
Hallo,

vielen Dank für die schnelle Antwort!


A) Ok also Firebird als Datenbank-Format. Muss ich da was spezielles beachten? Wie lege ich da neue Tabellen an - ich habe mal gegoogelt und da kamen direkt eine Menge Treffer unterschiedlichster Tools und GUIs, was kann man da empfehlen?


B) Das Problem mit Zeos ist, dass es noch keine funktionierende Version für D2009 gibt (wird laut HP erst ab zeos 7 unterstützt, im Moment gibts wohl nur ne sehr frühe Alpha-Version).

Gibts ne andere Zugriffsmöglichkeit auf Firebird? ...und kann man den Zugriff später noch ändern oder ist man nach der Entscheidung eher festgelegt?


Vielen Dank
Codex

hoika 16. Jul 2009 12:44

Re: Bitte um Empfehlung...
 
Hallo,

A) IBExpert

B) die Zugriffs-Schicht zu ändern, kann
B.1) ein Klick sein (bridge pattern benutzt)
B.2) komplettes Umprogrammieren bedeuten

Bei D2009 könnte man auch DBExpress benutzen.
Wenn es etwas kosten darf, FIBPlus.


Heiko

mkinzler 16. Jul 2009 12:46

Re: Bitte um Empfehlung...
 
B) UIB, IBDAC, ADO, IBX, ...

Alfredo 16. Jul 2009 12:47

Re: Bitte um Empfehlung...
 
Ich arbeite derzeit mit

Delphi 2009 Professional
DevExpress
SQLDirect(zukünftig FibPlus)
firebird CS 2.0.3 auf einem Samba-Server(Fedora 10)

Die Komponenten sind "nicht" kostenlos.

Bei dem aktuellen Dollarkurs ist der Kaufpreis zweitrangig.
Der Zeitgewinn bei der Programmentwicklung und die Qualität
des damit erstellten Programmes ist viel wichtiger.

Gruß
Alfred

Satty67 16. Jul 2009 12:48

Re: Bitte um Empfehlung...
 
Zitat:

Zitat von Alphacodex
Gibts ne andere Zugriffsmöglichkeit auf Firebird? ...und kann man den Zugriff später noch ändern oder ist man nach der Entscheidung eher festgelegt?

Ist DBExpress bei D2009 noch dabei? Das hat ganz gut funktioniert, wenn es was kosten darf FIBplus? Ändern kann man die Zugriffskomponenten jederzeit (auch mit unterschiedlichen gleichzeitig zugreifen).

€: Oje, darf die Threads nicht in Tab's halten, da hinke ich ja elend hinterher.

Alfredo 16. Jul 2009 12:54

Re: Bitte um Empfehlung...
 
Zitat:

Wie lege ich da neue Tabellen an
Folgendes führt zum Ziel:

Per Programm und SQL-Befehl(Create Table).


Mit einem Tool:


kostenpflichtig(aber beide sehr gut)

- IBExpert

- DatabaseWorbench(gibt es als 60 Tage Trial)


kostenlos aber sehr steinig(der kann nur SQL, die kostenpflichtigen können mehr
als der SQL-Standard anbietet)

Flamerobin


Gruß
Alfred

Phoenix 16. Jul 2009 12:56

Re: Bitte um Empfehlung...
 
Zitat:

Zitat von Alphacodex
In den Büchern die ich habe wir als Format öfters Paradox empfohlen, wobei ich nicht wirklich weiss warum und ob das für meine Anwendung auch das richtige ist

Als Zugriff wird in den Büchern meist die BDE empfohlen, wobei in den meisten Forum immer über die BDE geflamed wird: "Nicht mehr verwenden, total veraltet" usw.

Ai, wie alt sind denn die Bücher? :shock:
Die letzte aktualisierte BDE Version wurde gemeinsam mit Delphi 5 vor 7 bis 8 Jahren ausgeliefert. Seit 7 Jahren wurde in der BDE kein einziger Bug mehr gefixt (und da gibt es einige).

mkinzler 16. Jul 2009 12:57

Re: Bitte um Empfehlung...
 
Wobei es von IBExpert auch eine abgespeckte kostenlose PE gibt, welche für die meisten Dinge aber mehr als ausreichend ist

Alphacodex 16. Jul 2009 13:06

Re: Bitte um Empfehlung...
 
Hallo an alle und Danke!

Dank Eurer Hilfe bin ich ja schonmal ein paar Schritte weiter...


Ich habe mir mal die PersonalEdition von IBExpert runtergeladen, ich hoffe die ist für meine Zwecke ausreichend.


Für den Zugriff bin ich mir noch nicht ganz sicher. Kann ich denn irgendwas nehmen, was bei Delphi2009 dabei ist? dbExpress wäre zum Beispiel noch dabei? Was brauchen meine Mitarbeiter, wenn sie Daten eintragen sollen. Müssen die dann was installieren?



Vielen Dank
Codex


P.S. äh ja die Bücher sind noch zu Delphi 6 ;-)

mkinzler 16. Jul 2009 13:08

Re: Bitte um Empfehlung...
 
Der reine Zugriff sollte mit IBX (InterBase Express) problemlos möglich sein

Alphacodex 16. Jul 2009 13:24

Re: Bitte um Empfehlung...
 
Ah ja InterBase ahbe ich auch in der Komponententabelle. Also InterBase oder dbExpress? Es gäbe auch noch dbGo...

Kann jemand mir da noch einen Tip geben was da die Vor- Nachteile wären.... Dann wäre meine Frage weitestgehend beantwortet...

Danke
Codex

mkinzler 16. Jul 2009 13:36

Re: Bitte um Empfehlung...
 
Datenbank->Datenbank erzeugen

hoika 16. Jul 2009 13:37

Re: Bitte um Empfehlung...
 
Hallo,

IBExpert: DataBase, CreateDataBase zu langsam ;(

Unter FB/IB besteht eine Datenbank in der Regel aus genau einer Datei,
dort ist alles drin (Tabellen, Indizes, usw.).

Mehrere Dateien sind erst notwendig, wenn das Dateisystem-Limit für Datei-Größe erreicht wird,
wie z.B. 2 GB unter einem normalen Linux (ext2 ?).


Heiko

Alfredo 16. Jul 2009 13:39

Re: Bitte um Empfehlung...
 
Nimm für die Testphase die Trial von SQL-Direct.

Es erscheint nur beim Start ein Hinweisbildschirm auf
die Trial. Damit kann man am Anfang sehr gut leben und
man hat den vollen Funktionsumfang.

Gruß
Alfred

Alphacodex 16. Jul 2009 14:15

Re: Bitte um Empfehlung...
 
Das Problem ist bei meinem IB Expert geht CreateDataBase überhaupt nicht...

Erst hat er rumgemeckert, dass er die firebird.msg im Programmverzeichnis von IB Expert nicht findet. Ich habe dann die Firebird-Dateien geruntergeladen und die besagte Datei rüberkopiert.So... der nächste wenige hilfreiche Fehler heisst jetzt: "Unsuccessful execution because of an unavailable ressource. Unavailable database". Google-Suche hat keine brauchbaren Infos gebracht.

Muss ich Firebird auf meinem System irgendwie installieren? Ich habe mal die instreg.exe und instclient.exe ausgeführt die bei dem Firebird 1.5 dabei waren, so stands in der Readme, hat aber nix gebracht...

Ratlos...


Grüße
Codex

mkinzler 16. Jul 2009 14:29

Re: Bitte um Empfehlung...
 
Delphi-Quellcode:
Muss ich Firebird auf meinem System irgendwie installieren? Ich habe mal die instreg.exe und instclient.exe ausgeführt die bei dem Firebird 1.5 dabei waren, so stands in der Readme, hat aber nix gebracht...
Ja.

hoika 16. Jul 2009 14:33

Re: Bitte um Empfehlung...
 
Hallo,

du kannst auch die Zip herunterladen,
auspacken (mit Unterverzeichnissen !)
und dann den Server am besten per Verknüpfung starten

fbserver.exe -a

Das -a heisst Application.


Heiko

Alfredo 16. Jul 2009 14:37

Re: Bitte um Empfehlung...
 
Warum denn 1.5.

Nimm die 2.0.5.

Das Teil solltest Du natürlich auf einem Server installieren.
Sonst fängst Du später alles wieder von vorne an.

Gruß
Alfred

Satty67 16. Jul 2009 14:44

Re: Bitte um Empfehlung...
 
Muss ja auch ein Paket mit kompletem Win32 Setup geben zumindest bei Firebird 2.x war das so. Da muss man nur bei Super/Classic-Server und Guard kurz überlegen, den Rest macht das Setup.

2x€: wegen Grammatikfehler... denke der knappe Stil von M. hat seine Vorteile ;)

haentschman 16. Jul 2009 14:50

Re: Bitte um Empfehlung...
 
Hallo...

ich werde das Gefühl nicht los, das der Threadersteller mit den Infos erschlagen und noch mehr verwirrt ist :gruebel:

Grundsätzliche Infos:

Arbeit mit Firebird Server:
1. Installation Firebird Server notwendig
2. fbclient.dll wird beim Client benötigt (evt. Programmverzeichnis)
3. Zum Anlegen / Verbinden brauchst du folgende Informationen: Computername wo der Firebird Server läuft (Host), den lokalen Pfad zur DB incl. Dateiname der DB aus Sicht des Servers
4. die Verbindung zur DB unterscheidet sich syntaktisch bei den unterschiedlichen Zugriffskomponenten

Arbeit mit Embedded:
1. Firebird Server Installation nicht notwendig
2. 3 DLL (Embedded) werden beim Client benötigt (Programmverzeichnis)
3. Zum Anlegen / Verbinden brauchst du folgende Informationen: (Host) bleibt leer, den lokalen Pfad zur DB incl. Dateiname der DB
4. die Verbindung zur DB unterscheidet sich syntaktisch bei den unterschiedlichen Zugriffskomponenten

...erst mal mußt du dir einig werden ob Server oder Embedded. Firebird entscheidet anhand des Host, ob Server oder Embedded. Wobei die Embedded DLL auch mit dem Server arbeiten können (Host <> '') nur umgekehrt nicht.
...wenn du diese Infos beachtest klappts auch mit dem IBExpert.

hoffe geholfen zu haben... :hi:

Alfredo 16. Jul 2009 15:00

Re: Bitte um Empfehlung...
 
Zitat:


ich werde das Gefühl nicht los, das der Threadersteller mit den Infos erschlagen und noch mehr verwirrt ist Grübelnd...


sehe ich auch so. :)

Bis es bei mir gelaufen ist, hatte ich ein paar graue Haare mehr und leider keine
Unterstützung wie hier.

Der Embedded hat für einen Anfänger so seine Tücken.

Mein Empfehlung daher für einen Anfänger: Den normalen Server wie beschrieben installieren.

Gruß
Alfred

haentschman 16. Jul 2009 15:03

Re: Bitte um Empfehlung...
 
Zitat:

Mein Empfehlung daher für einen Anfänger: Den normalen Server wie beschrieben installieren.
...sehe ich auch so. Man kann aber nur mit Informationen richtig agieren. Denn wenn im IBExpert die Einstellungen nicht stimmen, weil man die Zusammenhänge nicht versteht kommt "Unavailable Database" raus :wink:

Alfredo 16. Jul 2009 15:13

Re: Bitte um Empfehlung...
 
Hallo Codex,

erzähle uns doch als erstes welches Betriebssystem Dein Server hat auf dem Du
den Firebirdserver installieren möchtest.


Gruß
Alfred

Alphacodex 16. Jul 2009 15:23

Re: Bitte um Empfehlung...
 
Ich verzweifle langsam... das kann doch nicht so schwer sein.

Ich habe jetzt das neuste Firebird installiert hat soweit geklappt, aber ich kann in DB Expert immer noch keine Datenbank erzeugen. Ich habe versucht den Server zu starten aber es passiert nichts, im Taskmanager wird nichts angezeigt. Muss der Server denn laufen, damit man eine Datenbank mit IB Expert erzeugen kann?

Ich bin einfach auch verwirrt, weil das für mich wie ne ganz einfache Sache klingt. Ich habe im Moment ja einfach nur ein lokales Delphi Programm unter Windows Vista32, dass auf eine lokale Datenbank im Programmverzeichnis zugreifen soll. Was mich verwirrt ist, dass dazu ein Server laufen muss und Dienste im Hintergrund aktiv sein müssen etc... Geht das nicht auch erstmal ohne das ganze "Spektakel"?


Danke Euch allen...
Grüße
Codex

mkinzler 16. Jul 2009 15:24

Re: Bitte um Empfehlung...
 
Ist der Dienst gestartet und auf automatisch gestellt?

haentschman 16. Jul 2009 15:32

Re: Bitte um Empfehlung...
 
Zitat:

Ich habe im Moment ja einfach nur ein lokales Delphi Programm unter Windows Vista32, dass auf eine lokale Datenbank im Programmverzeichnis zugreifen soll.
Zitat:

Geht das nicht auch erstmal ohne das ganze "Spektakel"?
...FB Embedded. Dazu brauchst du die 3 Embedded DLL im Programmverzeichnis.

Tutorial Embedded

mkinzler 16. Jul 2009 15:35

Re: Bitte um Empfehlung...
 
Das erschwert dann allerdings das entwickeln, da entweder IBEXpert, die IDE oder das Programm auf die Datenbank zugreifen kann.

Alphacodex 16. Jul 2009 15:39

Re: Bitte um Empfehlung...
 
Es laufen 3 Firebird-Dienste: Guardian, Server Default und Server MAGIX. Sind zwar auf manuell gestellt, aber das dürfte ja kein Problem sein...

Nachdem ich jetzt statt der fbclient.dll im System32 Ordner auf die im Programm-Verzeichnis von Firebird verweise, bekomme ich einen neuen Fehler, dass mein User-Name und Passwort nicht stimmen. Aber wie kann ich die anlegen, wenn noch gar keine Datenbank existiert??


Grüße
Codex

Alfredo 16. Jul 2009 15:40

Re: Bitte um Empfehlung...
 
Hallo Codex,

nutze dieses Forum doch wie ein Navi und wenn wir dir sagen
Du sollst gerade aus auf der Autobahn fahren, dann kannst
Du selbst verständlich die Landstrasse nehmen um die
Maut zu sparen. Nur sollest Du dann nicht wundern, wenn die
einzige Brücke wegen Bauarbeiten bis Montag gesperrt ist :)

Ein Server ist ein Server.
Sein Zweck ist es einen Dienst bereitzustellen und er
weis wo die Datenbanken liegen und regelt den Zugriff vollautomatisch.

Man kann alles auch auf einem lokalen Rechner machen, nur versuche
bitte erst alles zu verstehen und nimm erst dann die Landstrasse. :)

Gruß
Alfred

p80286 16. Jul 2009 15:44

Re: Bitte um Empfehlung...
 
Zitat:

Zitat von Alphacodex
Ich verzweifle langsam...
....
Was mich verwirrt ist, dass dazu ein Server laufen muss und Dienste im Hintergrund aktiv sein müssen etc... Geht das nicht auch erstmal ohne das ganze "Spektakel"?

Nein es geht nicht ohne!
(ja, ich weiß es gibt die Ausnahme... und die Ausnahme...)

Wenn Du eine "richtige" Datenbank hast, eine auf die gleichzeitig mehrere Benutzer zugreifen können, dann brauchst Du einen Server. Vielleicht nicht einen Rechner der nur als DB-Server dient, aber besser wäre das schon.

Natürlich kann man auch mit der "Embedded"- ein Programm entwickeln, aber wenn es ernst wird, dann sollte der Server schon da sein, undDu solltest Erfahrung damit haben, darum würde ich Dir die embedded-Version nicht empfehlen.

Gruß
K-H

edit: der rote kasten fehlt?

Alfredo 16. Jul 2009 15:51

Re: Bitte um Empfehlung...
 
Zitat:

Nachdem ich jetzt statt der fbclient.dll im System32 Ordner auf die im Programm-Verzeichnis von Firebird verweise, bekomme ich einen neuen Fehler, dass mein User-Name und Passwort nicht stimmen. Aber wie kann ich die anlegen, wenn noch gar keine Datenbank existiert??
Default User: SYSDBA

Default Passwort: masterkey


Gruß
Alfred

Alphacodex 16. Jul 2009 16:04

Re: Bitte um Empfehlung...
 
Gut, mangels meiner Erfahrung nehme ich dann eben die Autobahn - also ich setze einen Server auf.

Habe inzwischen heruasgefunden, dass es irgendwie per DB Expert nicht geht User anzulegen, also habe ich das mittlerweile mit gsec (Dem Kommandozeilen-Editor von Firebird) hinbekommen.

ENDLICH hat er jetzt alles gefressen und die Datenbank angelegt...! Mal sehen wo der nächste Hund begraben liegt...


Dann lege ich jetzt mal die benötigten Tabellen an. Habt ihr vielleicht noch ein Link für ein dbExpress Zugriff auf Firebird Tutorial? Wäre natürlich klasse, ansonsten versuche ich so weiterzukommen...


Vielen Dank an Alle nochmal
Codex

Alfredo 16. Jul 2009 16:19

Re: Bitte um Empfehlung...
 
Brav. :)

Bitte nicht dbexpress(ist nicht ohne Probleme)


Bitte: http://www.sqldirect-soft.com/ (weil ich mich damit auskenne :-D)


und SQLDirD12.exe(Delphi 2009) downloaden, installieren und dann wieder melden.

Sorry!!! für Delphi 2006 natürlich SQLDirD10.exe.

Gruß
Alfred

mkinzler 16. Jul 2009 16:21

Re: Bitte um Empfehlung...
 
Am Einfachstn IBX verwenden! 1. weil der Interbase-dbExpress-Treiber sehr IB spezifisch ist und 2. die künstlichen Beschränkungen von CG unterliegt

Alphacodex 16. Jul 2009 16:49

Re: Bitte um Empfehlung...
 
Aber was mache ich, wenn mir mein NAVI zwei verschiedene Richtungen ansagt?? ;-)

Also kann man das ganze in Delphi mitgelieferte Zeug nicht gut verwenden? Ich brauche auf jeden Fall noch was extra für den Zugriff (also DBX oder SQLDir?)

Grüße
Codex

mkinzler 16. Jul 2009 17:24

Re: Bitte um Empfehlung...
 
Zitat:

Also kann man das ganze in Delphi mitgelieferte Zeug nicht gut verwenden?
Doch wie gesagt IBX (Interbase Express)

Alphacodex 16. Jul 2009 17:35

Re: Bitte um Empfehlung...
 
Ah stimmt... hatte ich übersehen. Muss man auf dem Client-Rechner dann irgendwas installieren so wie bei der BDE?


Grüße
Codex

Alphacodex 16. Jul 2009 17:37

Re: Bitte um Empfehlung...
 
Nachtrag: In meiner Komponenten-Palette finde ich nur "Interbase" ohne Express. Ist es das was Du meinst?


Grüße
Codex


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

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