Access oder MySQL
-
- Beiträge: 351
- 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
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
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
- af0815
- Lazarusforum e. V.
- Beiträge: 6766
- 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
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
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).
-
- 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
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.
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
akt. Projekt: Webserver(HTTPS HTTP/2) mit integrierten CMS in Free Pascal - www.gocher.me
Re: Access oder MySQL
Access:
Warum also Access überhaupt in die Überlegung mit einbeziehen?
so ist esgocher hat geschrieben:der Weg dahin war sehr steinig
und es gibt noch ähnliche DBs.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.
Warum also Access überhaupt in die Überlegung mit einbeziehen?
-
- Beiträge: 1581
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Access oder MySQL
Wenn Du eine Desktop Datenbank benötigst, dann nimm lieber SQLite aber niemals Access.
EleLa - Elektronik Lagerverwaltung - www.elela.de
Re: Access oder MySQL
Da mehr als Einer mit den Daten arbeitet solltest du auf jeden Fall ein Serversystem benutzen. Alles andere bringt auf Dauer nur Ärger.
-
- Beiträge: 351
- 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
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
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
-
- Lazarusforum e. V.
- Beiträge: 3177
- 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
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.
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.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-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.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.
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.MmVisual hat geschrieben:Wenn Du eine Desktop Datenbank benötigst, dann nimm lieber SQLite aber niemals Access.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- 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
Pictures inside a database: http://delphi.about.com/od/database/l/aa030601a.htmSocke 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.
Habe ich schon gemacht, funktioniert bei mir, jedoch würde ich Bilder nur als Referenzen in der Datenbank ablegen.
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 anSocke 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.

MfG Gocher
akt. Projekt: Webserver(HTTPS HTTP/2) mit integrierten CMS in Free Pascal - www.gocher.me
akt. Projekt: Webserver(HTTPS HTTP/2) mit integrierten CMS in Free Pascal - www.gocher.me
- af0815
- Lazarusforum e. V.
- Beiträge: 6766
- 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
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.
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).
-
- 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
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
Bei Server-basierten Datenbanken muss man sich intensiv Gedanken über das Backup machen !!!
-Michael
- af0815
- Lazarusforum e. V.
- Beiträge: 6766
- 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
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.mschnell hat geschrieben: Bei Server-basierten Datenbanken muss man sich intensiv Gedanken über das Backup machen !!!
-Michael
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Lazarusforum e. V.
- Beiträge: 3177
- 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
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.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).
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- 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
Du hast sowas von Recht. Da habe ich auf dem gedanklichen Holzweg die falschen Abzweigungen genommen.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.

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

-Michael
-
- 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
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:
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.
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 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
akt. Projekt: Webserver(HTTPS HTTP/2) mit integrierten CMS in Free Pascal - www.gocher.me