Datenbank nativ ausführen

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.

Datenbank nativ ausführen

Beitragvon and4more » 1. Sep 2017, 16:13 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
Lazarus 1.6.4 32-Bit + 64-Bit, Windows 10 64-Bit, Manjaro Linux 64-Bit
and4more
 
Beiträge: 207
Registriert: 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
Nach oben

Beitragvon charlytango » 1. Sep 2017, 18:03 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
charlytango
 
Beiträge: 123
Registriert: 12. Sep 2015, 11:10
Wohnort: Wien
OS, Lazarus, FPC: Laz 1.8 | 
CPU-Target: Win 32Bit, 64bit
Nach oben

Beitragvon and4more » 1. Sep 2017, 23:37 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
and4more
 
Beiträge: 207
Registriert: 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
Nach oben

Beitragvon and4more » 1. Sep 2017, 23:40 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
and4more
 
Beiträge: 207
Registriert: 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
Nach oben

Beitragvon charlytango » 2. Sep 2017, 08:25 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 :)
charlytango
 
Beiträge: 123
Registriert: 12. Sep 2015, 11:10
Wohnort: Wien
OS, Lazarus, FPC: Laz 1.8 | 
CPU-Target: Win 32Bit, 64bit
Nach oben

Beitragvon and4more » 2. Sep 2017, 14:38 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
Lazarus 1.6.4 32-Bit + 64-Bit, Windows 10 64-Bit, Manjaro Linux 64-Bit
and4more
 
Beiträge: 207
Registriert: 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
Nach oben

Beitragvon wp_xyz » 2. Sep 2017, 15:11 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
wp_xyz
 
Beiträge: 2647
Registriert: 8. Apr 2011, 08:01

Beitragvon and4more » 4. Sep 2017, 16:55 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
and4more
 
Beiträge: 207
Registriert: 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
Nach oben

Beitragvon MacWomble » 4. Sep 2017, 17:30 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. :oops:
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.
MacWomble
 
Beiträge: 591
Registriert: 17. Apr 2008, 00:59
Wohnort: Freiburg
OS, Lazarus, FPC: Mint 19 Cinnamon / CodeTyphon Generation V Plan 6.60 | 
CPU-Target: Intel i7 64/32 Bit
Nach oben

Beitragvon MmVisual » 4. Sep 2017, 18:45 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).
MmVisual
 
Beiträge: 996
Registriert: 10. Okt 2008, 22:54
OS, Lazarus, FPC: Winux (L 1.6 FPC 3) | 
CPU-Target: 32/64Bit
Nach oben

Beitragvon and4more » 7. Sep 2017, 19:21 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
and4more
 
Beiträge: 207
Registriert: 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
Nach oben

Beitragvon wp_xyz » 7. Sep 2017, 21:32 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.
wp_xyz
 
Beiträge: 2647
Registriert: 8. Apr 2011, 08:01

Beitragvon af0815 » 8. Sep 2017, 06:50 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).
af0815
 
Beiträge: 3479
Registriert: 7. Jan 2007, 10:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: FPC 3.2 Lazarus 2.0 per fpcupdeluxe | 
CPU-Target: 32Bit (64Bit)
Nach oben

Beitragvon MmVisual » 8. Sep 2017, 09:03 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 :mrgreen:
MmVisual
 
Beiträge: 996
Registriert: 10. Okt 2008, 22:54
OS, Lazarus, FPC: Winux (L 1.6 FPC 3) | 
CPU-Target: 32/64Bit
Nach oben

Beitragvon and4more » 8. Sep 2017, 21:15 Re: Datenbank nativ ausführen

Nicht Lazarus hat Probleme die DLL zu finden, eher Du hast diese Probleme :mrgreen:


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
and4more
 
Beiträge: 207
Registriert: 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
Nach oben

» Weitere Beiträge siehe nächste Seite »
Nächste

Zurück zu Datenbanken



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

porpoises-institution
accuracy-worried