Access oder MySQL

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
ErnstVolker
Beiträge: 336
Registriert: Di 17. Feb 2009, 10:44
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Access oder MySQL

Beitrag von ErnstVolker »

Hallo Forumsgemeinde,

ich möchte mich mit Datenbanken beschäftigen und habe auch schon mal in MS Acces reingeguckt. Es gibt auch mehrere Forumsbeiträge über den Zugriff auf diesen Typ Datenbank. Die waren etwas älter (so 2009, 2010, 2011) und erweckten den Anschein als wäre der Zugriff von Lazarus aus etwas steinig.

Momentan arbeiten wir mit einer Excel-Arbeitsmappe in die Daten eingetragen werden. Das geschieht über Netzwerk von zwei Rechnern aus. Man muss die Arbeitsmappe hierfür freigeben. Nur sieht immer ein Benutzer nicht, was der Andere schon eingegeben hat. Erst nach dem Speichern. Das funzt, weil einer die geraden Indexe, der andere die Ungeraden nimmt. Zugleich befindet sich auch auf einem der Rechner eine Acces-Datenank mit Adressen. Da werden von beiden Leuten die in die Excel-Mappe eingeben Adressen entnommen (und nach Excel übergeben) bzw. auch welche neu angelegt.

Mein Bestreben ist es, die Excel-Mappe kpl. durch eine Acces-Datenbank mit mehreren Tabellen zu ersetzen. Die Datenbank wollte ich in Access "konstruieren" und anschließend mittels Lazarus "befüllen". Sozusagen eine Anwendung in Lazarus entwickeln um von zwei (oder mehr, bzw. max. vier) Rechnern aus Daten in die MS Access-Datenbank zu schicken bzw. zu lesen.

1.) Macht es Sinn für die Art der "Datenverwaltung" Access zu nehmen oder sollte man MySQL nehmen?
2.) Bringt der Zugriff mittels einer mit Lazarus entwickelten Anwendung auf eine Acces-Datenbank Geschwindigkeitsvorteile, z.B. beim Speichern von Daten, gegenüber einer Anwendungsentwicklung kpl. mit Access-VBA?
3.) Würdet Ihr mir eine ganz andere Vorgehensweise empfehlen?

Es müssen auch Bilder eingefügt werden können, die dann später in einer Liste mit zusätzlichen Beschreibungen gedruckt werden.

Viele Grüße

Volker

Benutzeravatar
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: Access oder MySQL

Beitrag von af0815 »

In den LazInfos steht ein wenig über die verschiedenen Typen von Datenbanken, schon mal durchgelesen ?

Access ist eine Desktopdatenbank, die nativ nicht von Lazarus unterstüzt wird. Wenn man hier im Hause MS bleibt, wird es mit weniger Hürden gehen. Nur dann würde ich auch nicht Access nehmen, sondern den SQL Express.

Wenn man einen Server nimmt, dann kann man natürlich auch bei MySQL bleiben und mit Lazarus arbeiten :-)
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

gocher
Beiträge: 298
Registriert: Di 23. Nov 2010, 23:41
OS, Lazarus, FPC: Ubuntu/Win, Lazarus trunk, FPC trunk
CPU-Target: 32Bit/64Bit
Wohnort: Geldern
Kontaktdaten:

Re: Access oder MySQL

Beitrag von gocher »

Nachteil: mit Access legst Du Dich auf Windows fest
Jedoch, ein Zugriff ist auch ohne Native Unterstützung aus Lazarus über die ADO-Schnittstelle (Microsoft ActiveX Data Objects 2.8 Library, C:\Programme\Gemeinsame Dateien\System\ado\msado15.dll) möglich.
Für meinen Arbeitgeber habe ich hierzu einige Klassen angelegt wie z.B. ADOConection, ADORecordset und ADOField das ganze funktioniert sehr gut und schnell, doch der Weg dahin war sehr steinig!
Meine Empfehlung für eine zügige Umsetzung wäre daher MySQL, für diese Datenbank existiert unter Lazarus bereits alles was Du für Dein Projekt benötigst und Du bist in Zukunft nicht von einem Betriebssystem abhängig.
MfG Gocher
akt. Projekt: Webserver(HTTPS HTTP/2) mit integrierten CMS in Free Pascal - www.gocher.me

hde
Beiträge: 556
Registriert: Mi 11. Aug 2010, 02:56

Re: Access oder MySQL

Beitrag von hde »

Access:
gocher hat geschrieben:der Weg dahin war sehr steinig
so ist es
gocher hat geschrieben:MySQL, für diese Datenbank existiert unter Lazarus bereits alles was Du für Dein Projekt benötigst und Du bist in Zukunft nicht von einem Betriebssystem abhängig.
und es gibt noch ähnliche DBs.
Warum also Access überhaupt in die Überlegung mit einbeziehen?

MmVisual
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: Access oder MySQL

Beitrag von MmVisual »

Wenn Du eine Desktop Datenbank benötigst, dann nimm lieber SQLite aber niemals Access.
EleLa - Elektronik Lagerverwaltung - www.elela.de

werner2be
Beiträge: 3
Registriert: So 17. Mär 2013, 16:44

Re: Access oder MySQL

Beitrag von werner2be »

Da mehr als Einer mit den Daten arbeitet solltest du auf jeden Fall ein Serversystem benutzen. Alles andere bringt auf Dauer nur Ärger.

ErnstVolker
Beiträge: 336
Registriert: Di 17. Feb 2009, 10:44
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Access oder MySQL

Beitrag von ErnstVolker »

Ihr habt mir schon mal sehr geholfen.

Ich hatte auch schon mal grob in den LazInfos bzw. im Tutorial über Datenbanken nachgelesen. Das war mir aber zunächst etwas viel Info. Durch Eure Antworten werde ich jetzt mal näher nach dem Unterschied zwischen Server- und Desktopdatenbank forschen.

Vielen Dank!!

Volker

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Access oder MySQL

Beitrag von Socke »

Beruflich durfte ich bereits mit Access arbeiten. Meine Empfehlung: Access sollte nur verwendet werden, wenn dies unbedingt vorgeschrieben ist (ein wenig Aufklärungsarbeit kann dagegen helfen) oder man eine Integration in andere Microsoft Office Produkte (über VBA) anstrebt. Für größere Projekte legt man sich den Access Dependency Checker zu; ohne verzweifelt man sehr, sehr schnell.

ErnstVolker hat geschrieben:Es müssen auch Bilder eingefügt werden können, die dann später in einer Liste mit zusätzlichen Beschreibungen gedruckt werden.

Access unterstützt keine Binary Large Objects (BLOB). Damit können Bilder nicht als solche abgespeichert werden. Diese müssen entweder als OLE-Object abgelegt werden (zuzüglicher Aufwand, diese in Lazarus-Anwendungen zu verwenden) oder aber in Text (Base64, Hexadezimaldarstellung, etc.) umkodiert werden.

werner2be hat geschrieben:Da mehr als Einer mit den Daten arbeitet solltest du auf jeden Fall ein Serversystem benutzen. Alles andere bringt auf Dauer nur Ärger.

Access-Projekte kann ca. 10 bis 20 Personen gleichzeitig zugreifen (abhängig von der Menge der verarbeiteten Daten). Bei wachsender Benutzerzahl kann man "relativ" problemlos die Datenhaltung auf MS SQL Server verschieben. Das Coding bleibt in Access vorhanden. Bringt natürlich nichts, wenn Access sowieso nur zur Datenhaltung verwendet wird.

MmVisual hat geschrieben:Wenn Du eine Desktop Datenbank benötigst, dann nimm lieber SQLite aber niemals Access.

Nach meinen Erfahrungen ist Access keine Datenbank. Grundlegende Dinge wie Transaktionen fehlen (diese gibt es bei der MySQL-Storage Engine MyISAM übrigens auch nicht; InnoDB hat diese). SQLite unterstützt dieses; bei sehr vielen gleichzeitigen Benutzern wird es aber auch langsam.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

gocher
Beiträge: 298
Registriert: Di 23. Nov 2010, 23:41
OS, Lazarus, FPC: Ubuntu/Win, Lazarus trunk, FPC trunk
CPU-Target: 32Bit/64Bit
Wohnort: Geldern
Kontaktdaten:

Re: Access oder MySQL

Beitrag von gocher »

Socke hat geschrieben:Access unterstützt keine Binary Large Objects (BLOB). Damit können Bilder nicht als solche abgespeichert werden. Diese müssen entweder als OLE-Object abgelegt werden (zuzüglicher Aufwand, diese in Lazarus-Anwendungen zu verwenden) oder aber in Text (Base64, Hexadezimaldarstellung, etc.) umkodiert werden.

Pictures inside a database: http://delphi.about.com/od/database/l/aa030601a.htm
Habe ich schon gemacht, funktioniert bei mir, jedoch würde ich Bilder nur als Referenzen in der Datenbank ablegen.
Socke hat geschrieben:Nach meinen Erfahrungen ist Access keine Datenbank. Grundlegende Dinge wie Transaktionen fehlen (diese gibt es bei der MySQL-Storage Engine MyISAM übrigens auch nicht; InnoDB hat diese). SQLite unterstützt dieses; bei sehr vielen gleichzeitigen Benutzern wird es aber auch langsam.

Stimmt ich nutze Access für ca. 20-30 Webauftritte und bei mehr als 5GB Datenbank-Traffic am Tag und einer Dateigröße von ~100MB bei einem Webauftritt kommt es doch schon drei bis vier mal im Jahr zu Problemen, so das ich den Webservice neu starten muss. Es kommt natürlich auch immer auf die Programmierung an :mrgreen:
MfG Gocher
akt. Projekt: Webserver(HTTPS HTTP/2) mit integrierten CMS in Free Pascal - www.gocher.me

Benutzeravatar
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: Access oder MySQL

Beitrag von af0815 »

In unserem Firmenumfeld 24x7x365 hat sich folgendes Kriterium für bzw gegen Access herauskristallisiert.

Es muß sichergestellt werden, das die Applikation die Komprimierung der DB durchführen kann ohne den Betrieb zu stören. Das ist notwendig, da bei uns viele Buchungen auf den Maschinen durchgeführt werden, die aber täglich konsolidiert werden und anschließend gelöscht werden. Wird die DB bei erreichen einer bestimmten Größe nicht komprimiert, so verschlechtern sich rasch die Antwortzeiten und das System wird unbrauchbar.

Da bei der Komprimierung der exklusive Zugang sichergestellt werden muß, sind die Applikationen fast alle auf Server umgestellt worden. Das sichere Trennen von allen Applikationen zum Komprimieren hat nicht so stabil funktioniert wie es benötigt war.

Auf einem Netzwerkshare funktioniert Access bei niederen Aufkommen und stabilen Netzwerk auch. Ist aber nicht zu bevorzugen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Access oder MySQL

Beitrag von mschnell »

Neben "Access" (eigentlich heißt das System "Flash" und hat mit Access, das eine Oberfläche für beliebige Datenbanken ist nichts zu tun, außer dass die Flash-DLL, die die SQL-Zugriffe lokal auf eine Datei abbildet, kostenfrei mitgeliefert wird) und MySql gibt es noch eine ganze menge weitere interessante SQL Datenbank - Systeme. z.B. MSSQL (teuer, nur Windows) und Postgres (kostenlos, Server: Linux und Windows, Zugriff und Verwaltung überall).

Bei Server-basierten Datenbanken muss man sich intensiv Gedanken über das Backup machen !!!

-Michael

Benutzeravatar
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: Access oder MySQL

Beitrag von af0815 »

mschnell hat geschrieben:Bei Server-basierten Datenbanken muss man sich intensiv Gedanken über das Backup machen !!!

-Michael

Nicht nur dort. Backup ist allgemein ein gern vergessenes Thema. Nur bei den Servern gibt es oft auch Tools das zu automatisieren und im Betrieb durchzuführen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Access oder MySQL

Beitrag von Socke »

mschnell hat geschrieben:Neben "Access" (eigentlich heißt das System "Flash" und hat mit Access, das eine Oberfläche für beliebige Datenbanken ist nichts zu tun, außer dass die Flash-DLL, die die SQL-Zugriffe lokal auf eine Datei abbildet, kostenfrei mitgeliefert wird) und MySql gibt es noch eine ganze menge weitere interessante SQL Datenbank - Systeme. z.B. MSSQL (teuer, nur Windows) und Postgres (kostenlos, Server: Linux und Windows, Zugriff und Verwaltung überall).

Die von Access verwendete Datenbank-Engine heißt Microsoft Jet, nicht Flash. Den MSSQL-Server gibt es auch in einer kostenlosen Variante; ob die Leistung und Lizenzbedingungen ausreichend sind, ist zu prüfen.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Access oder MySQL

Beitrag von mschnell »

Socke hat geschrieben:Die von Access verwendete Datenbank-Engine heißt Microsoft Jet, nicht Flash. Den MSSQL-Server gibt es auch in einer kostenlosen Variante; ob die Leistung und Lizenzbedingungen ausreichend sind, ist zu prüfen.


Du hast sowas von Recht. Da habe ich auf dem gedanklichen Holzweg die falschen Abzweigungen genommen. :(

Eine "Flash" Datenbank gibt es - glaube ich - aber auch... :D

-Michael

gocher
Beiträge: 298
Registriert: Di 23. Nov 2010, 23:41
OS, Lazarus, FPC: Ubuntu/Win, Lazarus trunk, FPC trunk
CPU-Target: 32Bit/64Bit
Wohnort: Geldern
Kontaktdaten:

Re: Access oder MySQL

Beitrag von gocher »

Liste der Datenbanken auf Wikipedia: http://de.wikipedia.org/wiki/Liste_der_ ... entsysteme
aber mit Exoten würde ich nicht anfangen.

In meinem Job setze ich MSSQL, Access und MySQL ein, die Microsoft-Produkte sind einfach benutzerfreundlicher aber hey sind wir Anwender/Benutzer, als Entwickler schaue ich darauf das das System den Anforderungen entspricht.
Also eigentlich immer die selben Punkte:
  • Auf welchen Betriebssystem soll es laufen, sollte es portabel sein
  • Mit welcher Sprache soll ich drauf zugreifen, also Schnittstellen und Komponenten der Sprache beachten
  • Preis des Produktes (falls das Projekt genug hergibt darf es auch was kosten)
  • Performance des Produktes

Unter Delphi gibt es zahlreiche Implementierungen der ADO-Schnittstelle unter Windows, das war für mich der Auslöser diese zu nutzen dadurch ist man unabhängig von der Datenbank, denn über die ADO-Schnittstelle lassen sich unter Windows fast alle Datenbanken nutzen, und ein Umstieg im nach hinein ist denkbar leicht. Ob eine ADO-Schnittstelle für Free Pascal existiert kann ich nicht sagen, ich hab mir selbst eine geschrieben und nie danach gesucht. Ich weiß nur noch das ich damals als ich meine eigene für Delphi geschrieben habe, die ich nun nach Free Pascal portiert habe, im Internet einiges gefunden habe.

Unter Linux kann ich wenig beitragen da ich dort hauptsächlich in PHP programmiere und ausschließlich auf MySQL zugreife.

Selbst unter Windows mit Free Pascal nutze ich in letzter Zeit häufig MySQL oder auch nur XML Daten im Filesystem alles eine Sache der Programmierung.
MfG Gocher
akt. Projekt: Webserver(HTTPS HTTP/2) mit integrierten CMS in Free Pascal - www.gocher.me

Antworten