Datenbank nativ ausführen
-
- Beiträge: 207
- Registriert: Do 15. Nov 2012, 19:13
- OS, Lazarus, FPC: Windows 10, Manjaro Linux, Lazarus 1.6.4 (32/64 Bit)
- CPU-Target: 32 Bit / 64 Bit
Datenbank nativ ausführen
Hallo Forum, weiß jemand, ob es außer dBase-Datenbanken noch andere gibt, die Lazarus/FreePascal nativ lesen und schreiben kann, also ohne Datenbank-Engine bzw. einer extra Bibliotheksdatei (.DLL/.SO)?
Habe über Google außer dBase leider nichts gefunden (Paradox ist nur lesbar).
Vielen Dank
Habe über Google außer dBase leider nichts gefunden (Paradox ist nur lesbar).
Vielen Dank
Lazarus 1.6.4 32-Bit + 64-Bit, Windows 10 64-Bit, Manjaro Linux 64-Bit
-
- Beiträge: 843
- Registriert: Sa 12. Sep 2015, 12:10
- OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
- CPU-Target: Win 32/64, Linux64
- Wohnort: Wien
Re: Datenbank nativ ausführen
Hi -- könntest du vielleicht etwas näher erläutern warum du das möchtest bzw warum du ein Problem mit einer extra DB-Engine hast ?
Möglicherweise kann man ja auch etwas anderes empfehlen das deinem Einsatzzweck nahe kommt.
Vielleicht ist das etwas f dich:
"ZMSql is is an SQL enhanced in-memory database, operating with flat textual (csv) tables. Completely written in Pascal, it has no dependencies on external libraries."
http://forum.lazarus.freepascal.org/index.php?topic=13821.0
Möglicherweise kann man ja auch etwas anderes empfehlen das deinem Einsatzzweck nahe kommt.
Vielleicht ist das etwas f dich:
"ZMSql is is an SQL enhanced in-memory database, operating with flat textual (csv) tables. Completely written in Pascal, it has no dependencies on external libraries."
http://forum.lazarus.freepascal.org/index.php?topic=13821.0
-
- Beiträge: 207
- Registriert: Do 15. Nov 2012, 19:13
- OS, Lazarus, FPC: Windows 10, Manjaro Linux, Lazarus 1.6.4 (32/64 Bit)
- CPU-Target: 32 Bit / 64 Bit
Re: Datenbank nativ ausführen
...also in meinem Fall ist es so, dass in meinem Unternehmen die Ausführung von (Fremd-)Programmen sehr restriktiv gehandhabt wird, zum zweiten finde ich eine SQL-Datenbank für wenige hundert Datensätze einen gewissen “Overkill“ zumal ich finde, dass die Programmierung schwieriger ist und zudem gar kein Multiuser-Zugriff stattfinden muss. Es geht darum, dass ich einfach Daten bei Bedarf wieder hervorholen können möchte. Ich habe das bisher mit dBase realisiert. Hierbei stört mich allerdings, dass diese Datenbank Probleme mit UTF8 hat.
Lazarus 1.6.4 32-Bit + 64-Bit, Windows 10 64-Bit, Manjaro Linux 64-Bit
-
- Beiträge: 207
- Registriert: Do 15. Nov 2012, 19:13
- OS, Lazarus, FPC: Windows 10, Manjaro Linux, Lazarus 1.6.4 (32/64 Bit)
- CPU-Target: 32 Bit / 64 Bit
Re: Datenbank nativ ausführen
...und übrigens Danke für den Tipp. Ich werde mir die Datenbank mal genauer anschauen.
Lazarus 1.6.4 32-Bit + 64-Bit, Windows 10 64-Bit, Manjaro Linux 64-Bit
-
- Beiträge: 843
- Registriert: Sa 12. Sep 2015, 12:10
- OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
- CPU-Target: Win 32/64, Linux64
- Wohnort: Wien
Re: Datenbank nativ ausführen
and4more hat geschrieben:...also in meinem Fall ist es so, dass in meinem Unternehmen die Ausführung von (Fremd-)Programmen sehr restriktiv gehandhabt wird, zum zweiten finde ich eine SQL-Datenbank für wenige hundert Datensätze einen gewissen “Overkill“ zumal ich finde, dass die Programmierung schwieriger ist und zudem gar kein Multiuser-Zugriff stattfinden muss. Es geht darum, dass ich einfach Daten bei Bedarf wieder hervorholen können möchte. Ich habe das bisher mit dBase realisiert. Hierbei stört mich allerdings, dass diese Datenbank Probleme mit UTF8 hat.
ooch dBase -- das ist ja ein richtiges dejavue -- erinnert mich an die Zeiten von Clipper und externen Bibliotheken für die Indizierung. Das waren noch Zeiten als man nicht wusste ob die 2,5 Mio Records in einer Datei/Tabelle auch morgen noch da sein würden und die Indizes regelmäßig gecrasht sind, mein Reindex hat damals 2 Stunden gebraucht ggggg
Die Vorsicht im Unternehmen ist sicher keine schlechte. Allerdings wird man auf die eine oder andere Art immer wieder Zugriffskomponenten auf Daten brauchen solange man nicht alles selbst programmiert. Was aber heutzutage imho wenig Sinn macht, da wärs mit rapid application development schnell vorbei.
Nicht nur wegen der Sicherheitsbedenken würde ich eine OpenSource Desktop-DB nehmen.
z.B. SQLite https://www.sqlite.org/about.html
da gibts auch passable (portable) Browser/Frontends dafür was beim Entwickeln hilfreich ist.
http://sqlitebrowser.org/
https://sqlitestudio.pl/index.rvt
Wiki gibts auch http://wiki.freepascal.org/SQLite
https://www.google.at/search?q=lazarus+sqlite+wiki
Einfach die sqlite3.dll (264kB) ins Projektverzeichnis (und noch eine ins Lazarusverzeichnis dann hast du den Zugriff auch in der IDE), eine DB-Datei mit einem der DB-Browser erstellen und du bist im Geschäft.
Zugriffskomponenten sind bei Lazarus dabei oder du installierst die ZEOS Komponenten.
Läuft, ist recht schlank und gräbt sich nicht ins Betriebssystem - also keine Installation nötig. Im Minimalfall hast du dann die Exe, die DLL und die DB-Datei - das wars.
have fun
-
- Beiträge: 207
- Registriert: Do 15. Nov 2012, 19:13
- OS, Lazarus, FPC: Windows 10, Manjaro Linux, Lazarus 1.6.4 (32/64 Bit)
- CPU-Target: 32 Bit / 64 Bit
Re: Datenbank nativ ausführen
...leider werden auch dll's geblockt, deswegen wäre halt die nativ ausführbare Variante die beste, Werd mir mal ZMSQL anschauen.
Danke
Danke
Lazarus 1.6.4 32-Bit + 64-Bit, Windows 10 64-Bit, Manjaro Linux 64-Bit
Re: Datenbank nativ ausführen
Bist du auf Windows? Dann nimm doch das Access-Format.Ich weiß, Access ist bei den Spezialisten hier verpöhnt, aber ich habe zu meinen Delphi-Zeiten viel damit gemacht, und als Ersatz von dBase taugt es allemal. Der Vorteil ist: alle nötigen dll's sind auf jedem Windows-System vorhanden , selbst wenn kein Microsoft Office mit der Access-Anwendung installiert ist (ok - Windows 98 vielleicht nicht, aber selbst da kann man nachinstallieren).
Mehr Infos im wiki: http://wiki.freepascal.org/MS_Access
Mehr Infos im wiki: http://wiki.freepascal.org/MS_Access
-
- Beiträge: 207
- Registriert: Do 15. Nov 2012, 19:13
- OS, Lazarus, FPC: Windows 10, Manjaro Linux, Lazarus 1.6.4 (32/64 Bit)
- CPU-Target: 32 Bit / 64 Bit
Re: Datenbank nativ ausführen
...hey, das ist 'ne super Idee. Wir haben hier das komplette Office-Paket. Vorteil bei Access wäre auch, dass es leicht zu normalisieren ist und die Beziehungen zwischen den Tabellen lassen sich gut pflegen. Und nicht zuletzt...es übt.
Lazarus 1.6.4 32-Bit + 64-Bit, Windows 10 64-Bit, Manjaro Linux 64-Bit
-
- Lazarusforum e. V.
- Beiträge: 999
- Registriert: Do 17. Apr 2008, 01:59
- OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
- CPU-Target: Intel i7-10750 64Bit
- Wohnort: Freiburg
Re: Datenbank nativ ausführen
ob das schlau ist, jemanden auf Access zu verweisen, anstatt eine vernünftige Datenbank zum Einsatz zu bringen?
Ich hatte massiv Probleme mit Access bei der Weiterentwicklung meiner Büroanwendungen und bereue nicht, zu einer vernünftigen SQL-Datenbank gewechselt zu haben. (vor 25 Jahre fand ich es toll Access und MS Entwicklungstools einzusetzen ... )
Naja, muss jeder selber wissen.
Ich hatte massiv Probleme mit Access bei der Weiterentwicklung meiner Büroanwendungen und bereue nicht, zu einer vernünftigen SQL-Datenbank gewechselt zu haben. (vor 25 Jahre fand ich es toll Access und MS Entwicklungstools einzusetzen ... )
Naja, muss jeder selber wissen.
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.
-
- Beiträge: 1466
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
- CPU-Target: 32/64Bit
Re: Datenbank nativ ausführen
and4more hat geschrieben:...leider werden auch dll's geblockt
Man kann sicher bei der IT Abteilung beantragen dass die "SQLite.dll" akzeptiert wird. Damit hättest Du eine lokale Datenbank.
Von Access kann ich auch nur abraten! Nehme da lieber eine Text-Datei (XML oder JSON).
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Beiträge: 207
- Registriert: Do 15. Nov 2012, 19:13
- OS, Lazarus, FPC: Windows 10, Manjaro Linux, Lazarus 1.6.4 (32/64 Bit)
- CPU-Target: 32 Bit / 64 Bit
Re: Datenbank nativ ausführen
...es hängt ja auch immer vom Einsatzzweck ab, was die Datenbank leisten können muss. In meinem Fall Single-User und max. Anzahl der Datensätze im einstelligen Tausenderbereich und das ist bereits eine sehr großzügige Schätzung. Ich finde die Idee mit den Access-Datenbanken vom Grundsatz her deshalb gar nicht so verkehrt, auch wenn mir klar ist, dass die Access-Datenbanken ab einer gewissen Komplexität Schwierigkeiten machen (sollen), was manche ja auch von dBase sagen. In meinem Fall löse ich das bei dBase so, dass bei jedem Speichervorgang eine Sicherungskopie angelegt wird. Die Sicherungstiefe kann eingestellt werden, ist ja nur ne Textdatei , und die ist auch nur wenige kB groß, so dass auch kaum Speicherplatz für die Sicherungsdaten "verschwendet" wird. Aufgrund von Office ist Access auf (fast) jedem System verfügbar, das ist doch sympathisch, oder. Ich hatte ursprünglich eine Firebird-Datenbank, die ja wie SQLite lediglich mit einer DLL funktionieren soll(te). Nach meinen bisherigen Erfahrungen bin ich aber eher zurückhaltend, da Lazarus doch offensichtlich Probleme hat die DLL zu finden. Schätze, dass dies bei SQLite ähnlich sein dürftte.
Lazarus 1.6.4 32-Bit + 64-Bit, Windows 10 64-Bit, Manjaro Linux 64-Bit
Re: Datenbank nativ ausführen
and4more hat geschrieben:Aufgrund von Office ist Access auf (fast) jedem System verfügbar, das ist doch sympathisch, oder.
Natürlich - aber das hat nichts mit Office zu tun. Du kannst mit Lazarus/Delphi jede mdb-Datenbank öffnen, ob nun Office vorhanden ist oder nicht, zumindest unter Windows, evtl auch die neueren accdb-Dateien, aber damit habe ich immer wieder Probleme.
- af0815
- Lazarusforum e. V.
- Beiträge: 6209
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Datenbank nativ ausführen
wp_xyz hat geschrieben:and4more hat geschrieben:Aufgrund von Office ist Access auf (fast) jedem System verfügbar, das ist doch sympathisch, oder.
Natürlich - aber das hat nichts mit Office zu tun. Du kannst mit Lazarus/Delphi jede mdb-Datenbank öffnen, ob nun Office vorhanden ist oder nicht, zumindest unter Windows...
Das man jede mdb öffnen kann unter WIndows, ist nicht sichergestellt. Es hängt von der Windowsversion und besonders davon ab, was eine IT vorgesehen hat. Die kann beim Scripten der Installation sehr wohl einem das Leben schwer machen. AUch muss man ein wenig aufpassen das Lazarusversion(32/64 Bit) und die Treiber zusammenpassen. Zusätzlich muss man gerade bei Access darauf aufpassen, das man auf die Verwaltungstools (z.B. Compress) Zugriff hat, sonst hat man eine Applikation die die Datenbank weder verkleinern noch reparieren kann. Es ist mir einer anderen Firma passiert, das ich die lokale DB mir auf den Computer holen musste, um die Datenbank zu komprimieren (Bereinigen) und eventuelle Fehler zu bereinigen, da dort lokal Access nicht erlaubt war.
Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 1466
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
- CPU-Target: 32/64Bit
Re: Datenbank nativ ausführen
and4more hat geschrieben:da Lazarus doch offensichtlich Probleme hat die DLL zu finden. Schätze, dass dies bei SQLite ähnlich sein dürftte.
Verwende Zeos, so wie schon zuvor empfohlen, mit SQLite. Die TZConnection Komponente erkennt in der Regel automatisch die DLL sofern diese im gleichen Verzeichnis liegt oder im Suchpfad vom Betriebssystem. Und falls du doch die DLL wo anders liegen haben willst, so kannst du den Pfad selbst der Komponente per "LibraryLocation" Parameter übergeben.
Nicht Lazarus hat Probleme die DLL zu finden, eher Du hast diese Probleme
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Beiträge: 207
- Registriert: Do 15. Nov 2012, 19:13
- OS, Lazarus, FPC: Windows 10, Manjaro Linux, Lazarus 1.6.4 (32/64 Bit)
- CPU-Target: 32 Bit / 64 Bit
Re: Datenbank nativ ausführen
Nicht Lazarus hat Probleme die DLL zu finden, eher Du hast diese Probleme
Nö, weder im Programmverzeichnis noch im Datenbankverzeichnis noch im Systemverzeichnis von Windows findet Lazarus die DLL angeblich nicht obwohl überall vorhanden.
Lazarus 1.6.4 32-Bit + 64-Bit, Windows 10 64-Bit, Manjaro Linux 64-Bit