Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datenbank iblite erstellen (https://www.delphipraxis.net/183343-datenbank-iblite-erstellen.html)

Peter-Pascal 3. Jan 2015 17:32

Datenbank: IBLite • Version: IB3 • Zugriff über: Delphi

Datenbank iblite erstellen
 
Hallo zusammen,

ich habe einige Anfängerfragen:

Seit Stunden versuche ich eine DB basierte Anwendung mit FM (Plattform übergreifend) zu schreiben. Es scheitert daran, dass ich keine IBLite DB anlegen kann. Ich versuche es mit IBConsole, aber sobald ich darauf zugreife heißt not licensed. Ist IBLite nicht frei?

Ich möchte eine kleine Anwendung mit angeschlossener DB schreiben auf die nur eine Person/Programm zugreift. Erst mal für Windows 64, dann auch später für iPhone/iPad. Da wurde IBLite angepriesen, deswegen die Wahl. Es sind auch Haupt-/Detail-Tabellen vorgesehen.

1. Kann ich mit IBConsole überhaupt eine IBLite DB erstellen?
2. Was bedeutet embeddet? Eingebettet in was? In die Exe?
3. Mit Livebindings habe ich per TProtoTypeBindSource Felder angelegt und gefüllt. Ist das auch eine DB? Wo werden die Daten gespeichert?
4. Ist es überhaupt sinnvoll mit Livebindungs zu arbeiten oder ist FireDac oder etwas ganz anderes besser?
5. Ich hänge nicht an IBLite, wäre eine andere DB sinnvoller? Firebird oder SQLLite?
6. Wie erstelle ich eine DB mit mehreren Tabellen ohne auf SQL-Befehle zurückzugreifen?

Sorry, wenn die Fragen albern klingen, aber ich finde offen gestanden nicht durch. Lese alles Mögliche aber komme meinem Ziel kaum näher. Ich sehne mich nach Paradox zurück. Liege ich völlig falsch, wenn ich annehme die Schritte mit Paradox eine DB-Anbindung zu erstellen müßte ähnlich auch jetzt noch mit IBLite funktionieren? DB und Tabellen mit Felder anlegen und im Programm per Datensensitive Felder die Tabellen füllen.

Gruß Peter

mkinzler 3. Jan 2015 17:59

AW: Datenbank iblite erstellen
 
Zitat:

1. Kann ich mit IBConsole überhaupt eine IBLite DB erstellen?
Sollte iegnetlich gehen.
Zitat:

2. Was bedeutet embeddet? Eingebettet in was? In die Exe?
Der "Datenbank Server" befindet sich in der Client Dll und läuft im Kontext des Programmes, welches diese Dll einbindet.
Zitat:

3. Mit Livebindings habe ich per TProtoTypeBindSource Felder angelegt und gefüllt. Ist das auch eine DB? Wo werden die Daten gespeichert?
Wie der Name schon sagt, ist das nur ein Hilfsmittel um mit Testdaten zu "prototypen".
Zitat:

4. Ist es überhaupt sinnvoll mit Livebindungs zu arbeiten oder ist FireDac oder etwas ganz anderes besser?
Livebindings ist ein Mechanismus, um Controls/Daten miteinander zu verbinden, Z.B. Control mit einer Datenmenge. Dies kann FireDAC, UNIDac ADO o.ä. verwenden.
Zitat:

5. Ich hänge nicht an IBLite, wäre eine andere DB sinnvoller? Firebird oder SQLLite?
Kommt darauf an. FireBird embedded/SQLite sind Äquivalente zu IBLite ( FireBird <-> FireBird embedded, InterBase <-> IBLite, SQLite ist nur 2.)
Zitat:

6. Wie erstelle ich eine DB mit mehreren Tabellen ohne auf SQL-Befehle zurückzugreifen?
Mit einem Admintool oder Access o.ä.

Peter-Pascal 3. Jan 2015 18:04

AW: Datenbank iblite erstellen
 
Danke für die schnelle Antwort.

Ist IBConsole nicht auch ein Admintool zum erstellen von DB?

Sobald ich mit Delphi daraub zugreifen will kommt iblite nicht licensiert. Ich habe Delphi XE7 und alles gekauft. Ich weiß auch nicht, wo ich das überprüfen kann.

Wenn ich eine Verbindung mit Livebinding anlegen möchte und und FireDac zB auswählen, kommt irgendwann ein Feld das heißt Befehlstext. Was muss dadrin stehen?

Gruß Peter

mkinzler 3. Jan 2015 18:18

AW: Datenbank iblite erstellen
 
IBConsole ist eher ein Abfrageshell. Mehr ist mit IBExpert, Database Workbench (von beiden gibt es eine kostenlose etwas eigeschränkte Version, FlameRobin usw. möglich.

https://www.ibphoenix.com/download/tools/admin

Für IBlite/IBToGo gibt es zusätzlich Seriennummern. Hast Du diese eingetragen?

Zum Entwickeln würde ich aber nicht IBLite/FireBird embedded, sondern den entsprechenden Server verwenden.

Peter-Pascal 3. Jan 2015 19:33

AW: Datenbank iblite erstellen
 
ich glaube ich verstehe.

Zitat:

Zum Entwickeln würde ich aber nicht IBLite/FireBird embedded, sondern den entsprechenden Server verwenden.
Ist der Server hier Interbase? Jetzt habe ich die DB mit einer Tabelle angelegt und als Treiber IB angegeben und es funktioniert, naja fast. IB läuft als Dienst.

Das heißt also: Sobald die Anwendung fertig ist, gibt es quasi die Wahl diese DB als IB, IBToGo oder IBLite weiterzugeben. Und dazu brauche ich - auch bei der IBLite offensichtlich - eine Lizens. Wie komme ich daran?

Zitat:

Für IBlite/IBToGo gibt es zusätzlich Seriennummern. Hast Du diese eingetragen?
Das habe ich nicht gemacht.

Es läuft fast meinte ich, dass ich darauf hingewiesen wurde FDGUIxWaitCursor1 einzufügen. Jetzt läuft es. Aber was ist das? In der Hilfe steht: es steuert den Wartecursor.

Nun fehlt mir noch eins, wie bekomme ich einen PrimaryKey mit autoincrement hin?

Kann FlameRobin auch IB? Es steht bei, dass es für FireBird ist.

Schon mal vielen Dank für Deine Mühe und Geduld.

mkinzler 3. Jan 2015 19:44

AW: Datenbank iblite erstellen
 
Zitat:

Ist der Server hier Interbase?
Ja.

Zitat:

Sobald die Anwendung fertig ist, gibt es quasi die Wahl diese DB als IB, IBToGo oder IBLite weiterzugeben.
Ja, so wie ich das verstehe ja. (Bei Firebird ist es so). Wobei die Möglichkeiten, je nach "Version" verschieden sind.
http://www.embarcadero.com/products/...oduct-editions
IBToGo ist für lokalen (SingleUser-)Zugriff auf Mobilgeräten. IBlite für embedded Zugriff auf der Windowsplattform. Für den MultiUser-Zugriff von mehreren Rechnern bietet sich der Interbase-Server an (Achtung muss getrennt lizenziert werden).

Autoincrement implementiert man am Besten mit einem Trigger, welche eine Sequenz/Generator

http://edn.embarcadero.com/article/22390

cbspeda 4. Jan 2015 12:05

AW: Datenbank iblite erstellen
 
Hi

Ich würde am Gerät selber immer SQLite verwenden(als interne Datenbank). Funktioniert perfekt und ist auch schnell. Der Aufwand ist minimal
oder
Firebird mit Json Reflection (Datasnap Server -> Firebird Datenbank) Client mit Memtables (Hier auch FireDac verwenden)
oder
ClientDataSEt
oder
UNIDAC mit Zugriff direkt auf die Datenbank (mySQL oder ORACLE Firebird gibt es noch keinen Direkt Zugriff)

Ich mache es immer so. Locale Einstellungen verwende ich Sqlite. (Macht bei Android und IOS keine Probleme)
Verbindung zum Server verwende ich Datasnap mit FireDac Json Reflection. Auslesen und Speichern funktioniert prima.
Auch Blobfelder kann man ohne Probleme auslesen und speichern. :mrgreen:

Ich kann hier mal einen Code posten was ich für eine Firebird Verbindung gemacht habe


Liebe Grüsse Peter

Peter-Pascal 4. Jan 2015 12:58

AW: Datenbank iblite erstellen
 
Hallo,

ich schaue mir gerade an, was es über SQLite im Internet gibt. Da ich noch ganz am Anfang stehe, ist es mir eigentlich egal, welches DBMS ich benutze.

Du schreibst von UniDac, ist das jetzt FireDac? In FireDac gibt es einen Treiber für SQLite.

Gibt es SQLite Tutorial in Deutsch? Mein Computer-Englisch ist nicht gut.
Gibt es ein Werkzeug, mit dem ich die DB und Tabellen anlegen kann?
Gibt es bei SQ-Lite Begrenzungen in der Größe der DB?

Mich irritiert immer noch ein wenig Livebinding. Mir erscheint es als eine Art Assistent/Wizard. Ist es da auch möglich Master/Detail-Tabellen anzulegen? Oder muss ich wie bei Paradox gewohnt Dataset/DataSource/Table-Komponenten anlegen?

Danke und Gruß Peter-Pascal

cbspeda 4. Jan 2015 13:30

AW: Datenbank iblite erstellen
 
Wie viele User sollen gleichzeitig am Server arbeiten?

Firebird
Bis zu 50 User kannst du auf jedem Fall Firebird verwenden.
Habe irgendwo gehört bis 500 User. Kann ich mir aber fast nicht vorstellen.
Zugriff von mobilen Geräten nicht direkt möglich nur über einen Rest Server

SQlite
Ich verwende SQlite nur als lokalen Speicher für meine Einstellungen am mobilen Gerät aber nicht als Haupt DB

Firedac = Bei Delphi Enterprise mit im Paket
Unidac = Konkurrenz zu Firedac (Kann von mobilen Geräten direkt auf Datenbank Server zugreifen) und meiner Meinung schneller.

http://www.devart.com/unidac/

Es gibt bei Firedac genauso noch Tables oder Querys wobei ich fast nur mehr Querys verwende.

Livebinding ist meiner Meinung noch nicht ganz ausgereift. Ich hatte nur Probleme damit

Installiere aber gerade Xe7 SP1 und teste nochmal.

Liebe Grüsse

Peter

Peter-Pascal 4. Jan 2015 13:54

AW: Datenbank iblite erstellen
 
Ich habe zwei Anwendungen (Booknizer und Movienizer) die mit SQLite Version 3 arbeiten. Lokal installiert ist die DB zufriedenstellend schnell.

Hast Du einen Link wo ich SQLite für Delphi bekomme und einen Admin? Ich finde da nicht so recht durch. Den Source zum Download habe ich gefunden, will ich erstmal nicht, nur das DBMS oder reicht ein Admin-Tool zum Anlegen und der Zugang erfolgt mit FireDac.

Es heißt immer wieder Paradox ist veraltet, glaube ich auch, aber es war recht einfach ein Programm mit DB zu erstellen. Vieles scheint mir komplizierter geworden zu sein. Kann auch sein, dass ich zulange an Paradox geklebt habe und damit vieles verpasst habe.

cbspeda 4. Jan 2015 14:10

AW: Datenbank iblite erstellen
 
Hi die Sqlite Datenbank wird bei Firedac automatisch angelegt wenn keine vorhanden ist.
du musst dann per SQL einfach die Tabellen anlegen.

Admin: http://sqliteadmin.orbmu2k.de/

Kannst mit diesem Tool die Datenbank anlegen und dann mit Firedac einfach drauf zugreifen.

lg peter

Peter-Pascal 4. Jan 2015 14:51

AW: Datenbank iblite erstellen
 
Herrlich, ich bin begeistert.

Wo ich gestern drei Stunden gebraucht habe zum Anlegen einer DB mit einer Tabelle und zwei Feldern, habe ich jetzt in 5 Minuten (vielleicht auch 10 min) erledigt. Wenn der Zugriff jetzt auch noch so einfach ist, bleibe ich bei SQLite.

Hier gibt es offensichtlich auch ein Auto_increment Feld.

Jetzt brauche ich noch ein Tutorial, möglichst in Deutsch, was mir ua. den Unterschied der einzelnen Feldtypen erläutert. (VarChar, NVarChar, Text)

cbspeda 4. Jan 2015 15:14

AW: Datenbank iblite erstellen
 
Auto_increment gibts auch.
Nur das SQL ist nicht so gut wie bei richtigen Datenbanken.
Mathematische Funktionen im SQL kannst halt keine machen.

Der Zugriff ist leicht:

FDConnection auf Formular ( Hier die Datei Auswählen und fertig)
Provider SQLite auf Formular
WaitCursor auf Formular
die Querys rauf und fertig

lg peter

Peter-Pascal 4. Jan 2015 15:19

AW: Datenbank iblite erstellen
 
Meinst Du mit WaitCursor TFDGUIxWaitCursor?
Was ist das? In der Hilfe steht Steuerung des Wartecursors.

cbspeda 4. Jan 2015 15:49

AW: Datenbank iblite erstellen
 
Ja (TFDGUIxWaitCursor) einfach nur auf Formular drauflegen.

Wenn gerade eine Query ausgeführt wird dann kommt der WaitCursor.

lg Peter

Peter-Pascal 4. Jan 2015 15:54

AW: Datenbank iblite erstellen
 
danke,

Ich habe es im Formular eingegeben, aber es kommt beim Ausführen der Hinweis: Database ist locked. Alles was ich gefunden habe, steht Active : true.
Wo kann ich das einstellen?

cbspeda 4. Jan 2015 16:06

AW: Datenbank iblite erstellen
 
Datenbank im Admin Tool schließen dann müsste es gehen

lg peter

Peter-Pascal 4. Jan 2015 16:15

AW: Datenbank iblite erstellen
 
Funktioniert nicht. Ich hatte vorher schon das Admin-Toll beendet. Jetzt noch mal geöffnet und auf schließen gedrückt, es kommt Database ist locked.

Mit dem Admin-Tool kann ich Daten eingeben und die werden auch in Delphi dann angezeigt, nur neue Datensätze läßt das System nicht zu

Perlsau 4. Jan 2015 16:33

AW: Datenbank iblite erstellen
 
Problem mit Dlls, Datenbanken etc.
Rückgabewert aus Query auslesen
Error Code SQLITE_LOCKED (6): Database Is Locked
Unlock Notification
Using the sqlite3_unlock_notify() API
How do I unlock a SQLite database?
...

Peter-Pascal 4. Jan 2015 17:53

AW: Datenbank iblite erstellen
 
Jetzt klappt es. Ich habe nur bei FDConnect den LockingMode auf Normal gesetzt. Vorher stand da exclusive.

Ich glaube das hat sich seit Version 3 etwas geändert:
http://www.sqlite.org/lockingv3.html

@PerlSau: danke für die Zusammenstellung der Links

IBExpert 4. Jan 2015 22:33

AW: Datenbank iblite erstellen
 
Zitat:

Zitat von cbspeda (Beitrag 1285320)
Wie viele User sollen gleichzeitig am Server arbeiten?

Firebird
Bis zu 50 User kannst du auf jedem Fall Firebird verwenden.
Habe irgendwo gehört bis 500 User. Kann ich mir aber fast nicht vorstellen.
Zugriff von mobilen Geräten nicht direkt möglich nur über einen Rest Server

wir haben Kundenprojekte mit über 2000 gleichzeitigen Connections auf einem Firebird Server. Das läuft problemlos, wenn man den Firebird Server auch performant programmiert und für solche Konfigurationen geeignete Hardware einsetzt und nicht auf die Labereien irgendwelcher Virtualisierungsfetischisten reinfällt. Durch Replikation und Clustering lässt sich das prinzipiell beliebg skalieren, wenn man weiß, wie man das umsetzt.

Leider erzeugen viele 08/15 Programme aber bereits so viel Last, weil der Programmierer sich nicht ernsthaft mit den Anforderungen der Datenbank auseinandersetzt. "Ist ja SQL, müsste also schnell sein ..." ist keine passende Strategie ....

Peter-Pascal 5. Jan 2015 15:41

AW: Datenbank iblite erstellen
 
Darf ich mal eine andere Frage in diesem Zusammenhang stellen?
Was ist das besondere bei dem Add-On für FireDac? Brauche ich dies, wenn ich mit Firebird programmieren möchte?

mkinzler 5. Jan 2015 15:43

AW: Datenbank iblite erstellen
 
Welcher AddOn?

Peter-Pascal 5. Jan 2015 16:58

AW: Datenbank iblite erstellen
 
Delphi XE7 Professional FireDAC Client/Server Add-On Pack für Delphi Professional, bei Delphi Enterprise offensichtlich enthalten.

http://www.originalsoftware.de/produ...d-On-Pack.html

Zur Entwicklung von iPhone-Anwendungen gibt es auch ein Add-On für Delphi Pro. Ebenfalls bei Delphi Enterprise enthalten.
http://www.originalsoftware.de/produ...d-On-Pack.html

Ich frage mich, ob es sinnvoll ist auf Enterprise umzusteigen oder sich gegebenenfalls nur die Add-On zuzulegen.

mkinzler 5. Jan 2015 19:29

AW: Datenbank iblite erstellen
 
Das hat nicht mit dem DBMS zu tun, sondern wo dieses installiert ist. Die pro Variante lässt nur zugriff auf einen lokal installierten Datenbankserver zu

http://www.embarcadero.com/products/rad-studio/firedac

Peter-Pascal 5. Jan 2015 19:37

AW: Datenbank iblite erstellen
 
Das heißt also, wenn eine Anwendung auf einen Server (DB) im Internet zugreifen soll, ist Delphi Enterprise erforderlich. Puh, das ist so schön teuer

mkinzler 5. Jan 2015 19:42

AW: Datenbank iblite erstellen
 
Es gibt aber auch andere Zugriffsbibliotheken oder halt das AddOn.

Btw. auf eine Datenbank im Internet würde ich ehe nicht direkt zugreifen bzw. ich würde keine Daten direkt ins Internet stellen, sondern hier eine Middleware ( z.B. REST, SOAP) einsetzen.

Peter-Pascal 5. Jan 2015 19:53

AW: Datenbank iblite erstellen
 
Danke für Deine Unterstützung

Peter-Pascal 14. Jan 2015 08:09

AW: Datenbank iblite erstellen
 
Hallo,

seit ein paar Tagen versuche ich mich mit SQLite anzufreunden. Vieles ist ganz einfach, aber halt nicht alles. Erstellen der DB, Zugang zur DB ohne Probleme. Aber dann... ganz besonders Livebinding.

Meine Frage:
Hat schon jemand mit Livebinding gearbeitet und kann es empfehlen?
Oder ist es besser die Daten aus der DB zu lesen die nicht verknüpften Felder 'per Hand' zu füllen und dann bei Bedarf die geänderten Werte zurückzuschreiben?

Ein Feld mit der DB zu verknüpfen ist sehr bequem. Klappt aber bei den TTime-Komponenten zB nicht.

Auch hat es bei mir nicht geklappt die DB-Zugriffs-Komponenten in einem TDataModul-Formular auszulagern und per Livebinding darauf zuzugreifen .

Vielen Dank

Ich hoffe es ist richtig, wenn ich in diesem Thread weiterschreibe und kein neues Thema aufmache.

Gruß Peter


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