Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi lokale Multiuser DB gesucht (https://www.delphipraxis.net/182226-lokale-multiuser-db-gesucht.html)

SvB 10. Okt 2014 11:08

Datenbank: Access • Version: 2003 • Zugriff über: ADO

lokale Multiuser DB gesucht
 
Hallo,

ich habe aktuell ein Problem mit einer individuellen Anwendung, die eine Access MDB Datenbank benutzt. Die DB war damals Vorgabe vom Kunden.
Der Kunde hat im Laufe des Jahres auf Windows 7 umgestellt und seit dem gibt es Probleme mit der DB. Wenn ich über Access 2010 ein "Komprimierung und Reparieren" laufen lasse, dann fehlen auf einmal in mehreren Tabellen die Indexe. Gefühlt läuft dann mein Programm nur noch langsam und die User beschweren sich. Bisher habe ich nicht herausfinden können, woran das liegt, das Problem scheint jedoch mit der Installation beim Kunden zusammen zu hängen, auf die ich keine Einfluss habe.

Jetzt suche ich nach einer alternativen DB. Ich hätte gerne einen MS SQL Server eingesetzt, der ist auch beim Kunden schon vorhanden, jedoch wären dadurch größere Änderungen an der Struktur im Programm nötig und das bekomme ich von den Kosten nicht durch.

Die Anforderungen wären: lokale DB ohne Installation, die user arbeiten mit Laptops und die meisten haben eine lokale Installation der Anwendung mit lokaler DB, da nicht immer Zugriff zum Firmen Netzwerk vorhanden ist. Also zu 90% wird nur ein User auf dessen Gerät auf die lokale DB zugegriffen.
In der Zentrale des Kunden ist jedoch eine Version der DB, auf die mal 3 bis 4 User zugreifen, mehr User nicht. Dafür benötige ich am besten die selbe DB.

Gibt es da etwas?

Uwe Raabe 10. Okt 2014 11:20

AW: lokale Multiuser DB gesucht
 
Zitat:

Zitat von SvB (Beitrag 1275532)
Jetzt suche ich nach einer alternativen DB. Ich hätte gerne einen MS SQL Server eingesetzt, der ist auch beim Kunden schon vorhanden, jedoch wären dadurch größere Änderungen an der Struktur im Programm nötig und das bekomme ich von den Kosten nicht durch.

Und wieso glaubst du, daß das bei einer anderen DB nicht so ist?

Ich würde hier tatsächlich den SQL-Server einsetzen. Wo er beim Kunden schon existiert, nimmst du diese Instanz. An allen anderen Stellen die Express oder gar die Compact Version.

mkinzler 10. Okt 2014 11:22

AW: lokale Multiuser DB gesucht
 
Sollte von jedem aktuellen DBMS erfüllt werden. Am Besten das selbe lokal und im Netz, dann wäre auch eine Replikation von benötigten Daten in beide Richtungen möglich. Da schon ein MSSQL vorhanden ist, wäre das ja eine Option (MS Server Express/compact - MSSQL). Sonst würde ich Firebird embedded/FireBird - FireBird nehmen.

SvB 10. Okt 2014 12:18

AW: lokale Multiuser DB gesucht
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1275535)
Und wieso glaubst du, daß das bei einer anderen DB nicht so ist?

Ich hab verschiedene Möglichkeiten schon mal gedanklich durchgespielt. Bei einer "lokalen" DB müsste ich "nur" den Zugriff (Zugriffskomponenten) anpassen (mal einfach gesagt). Beim SQL Server müsste ich an der Struktur innerhalb vom Programm noch einiges Ändern, da nicht jeder Zugriff auf den Server hat. Ich müsste da noch Daten austauschen usw. Da sind noch ein paar andere Spezialitäten im Programm, die alle hier zu erklären würde das Ganze für den Moment sprengen.

Wie gesagt, die größte Anforderung ist, dass keine Installation auf dem Client erforderlich ist. Die Clients vom Kunden werden von HP gemanaged und es ist mit einem riesen Aufwand verbunden ein neues Softwarepaket zur Installation freigeben zu lassen. Auf dem Server ist die Installation kein Problem.

Kann ich mit einem embedded Firebird über das Netzwerk mit mehreren Usern auf eine DB zugreifen (Filebasiert). Firewallregeln sind auch ein Problem!

Darlo 10. Okt 2014 12:56

AW: lokale Multiuser DB gesucht
 
Soweit ich weiß ist ABSDatabase MultiUserfähig

mm1256 10. Okt 2014 15:55

AW: lokale Multiuser DB gesucht
 
Zitat:

Kann ich mit einem embedded Firebird über das Netzwerk mit mehreren Usern auf eine DB zugreifen (Filebasiert). Firewallregeln sind auch ein Problem!
Ob das mit Firebird geht, kann ich dir leider nicht beantworten. Ich mache das mit Nexus, damit geht's.

p80286 10. Okt 2014 16:08

AW: lokale Multiuser DB gesucht
 
Zitat:

Zitat von SvB (Beitrag 1275547)
Kann ich mit einem embedded Firebird über das Netzwerk mit mehreren Usern auf eine DB zugreifen (Filebasiert). Firewallregeln sind auch ein Problem!

Das ist auf keinen Fall empfehlenswert. Es gibt da ein paar Tricks aber sicher und problemlos ist der Zugriff mehrer Benutzer nur wenn ein Server(dienst) läuft.

Wenn schon der SQLServer im Hause ist, dann sollte es doch ein Klacks sein eine zusätzliche DB mit spezifischen Berechtigungen einzurichten. Damit bist Du auf der sicheren Seite.

Gruß
K-H

sx2008 11. Okt 2014 22:02

AW: lokale Multiuser DB gesucht
 
Zitat:

Zitat von SvB (Beitrag 1275532)
Ich hätte gerne einen MS SQL Server eingesetzt, ... jedoch wären dadurch größere Änderungen an der Struktur im Programm nötig

Wenn du mit ADO-Komponenten auf MS Access zugreifst dann stehen die Chancen extrem gut dass du nur die Access DB im SQL Server importieren musst und den Connectionstring anpassen musst.
Alles was Access in Bezug auf SQL kann kann der SQL Server ebenfalls.
Es gibt nur ganz wenige SQL-Funktionen in Access die beim SQL Server einen anderen Namen haben.
In Access werden alle varchar-Felder grundsätzlich intern als UTF-8 gespeichert.
Falls deine Anwendung Unicode benötigt musst du beim SQL Server den Datentyp nvarchar verwenden.

SvB 12. Okt 2014 08:09

AW: lokale Multiuser DB gesucht
 
Guten Morgen,

ich verwende ADO und der SQL Server beim Kunden selbst dürfte nicht das Problem sein, das könnte ich relativ einfach umstellen. Das Problem sind die Clients, die nur selten mit dem Firmennetzwerk verbunden sind. Diese benötigen eine eigene Datenbank. Das Problem dabei ist, dass das Clientmanagement nach HP outgesourced ist und es da bestimmte Regeln bei denen gibt. Eine Installation vom SQL Express ist da nicht so einfach möglich. Das muss erst mal genehmigt werden, dann müssen Installationspakete bei denen für die Softwareverteilung erstellt werden, usw. Ich weiß nicht genau, was da noch mit dran hängt und das kann 3 bis 4 Monate dauern. Am einfachsten wäre etwas ohne Installation auf dem Client oder irgend etwas, was ich als .DLL hinterlegen kann und diese über die Zugriffskomponenten genutzt wird.

PC-John 12. Okt 2014 09:20

AW: lokale Multiuser DB gesucht
 
Probier es mal mit Absolute-Database.
http://www.componentace.com/bde_repl...e_database.htm

Die Single-User Version funktioniert auch als Multiuser-Version, hat nur einen NAG-Screen zu Beginn.
Absolute Database hat nur ein einziges File (die Datenbank selbst), braucht keine .DLL und keine Installation.
Das Datenbankfile kann irgendwo im Netzwerk liegen, und hat Record-Locking ohne zusätzlich nötigen Programmcode.
Ich bin sehr zufrieden damit.
Habe zwar nur bis 300 Records darin, aber dafür 250 Felder breit, und haufenweise Indizies.

PC-John

scrat1979 12. Okt 2014 18:32

AW: lokale Multiuser DB gesucht
 
Entweder Absolute Database ( ABSDatabse ) wie mehrfach erwähnt in der Multi-User-Edition ( glaube 199€ ) oder Firebird. Letztes hätte den Vorteil, dass es leicht an größere Anforderungen (e.g. Client-Server-Betrieb) umzustellen ist.

Habe mit beiden DBMS Erfahrung und bin mit beiden voll zufrieden, wobei meine Anforderungen sich auch in Grenzen halten :-) Für den Zugriff auf Firebird verwende ich IBDAC und UniDAC.

Liebe Grüße und viel Erfolg.

SvB 13. Okt 2014 10:16

AW: lokale Multiuser DB gesucht
 
Erst mal danke an alle für die Infos.

Ich habe am Wochenende noch einige Tests durchgeführt und der Kunde heute morgen auch und mit der Access-DB kommen wir auf keinen Fall weiter.
Ich habe den Kunden jetzt soweit, dass er auf einen SQL Server geht. Er prüft gerade wie das mit dem MS SQL Express für die Clients aussieht, ansonsten wäre auch Firebird kein Problem. Ich denke, dass ist der Weg in die richtige Richtung.

Absolute Database habe ich selbst auch im Einsatz für kleine Dinge, ich weiß nicht wie sich das verhält bei größeren Datenbanken. Die Access-DB ist aktuell ca. 1,3 GB groß. Mir wäre dann die SQL Server Variante lieber.

OlafSt 13. Okt 2014 10:18

AW: lokale Multiuser DB gesucht
 
Achte darauf, das die Express-Variante von SQL-Server ein paar Limits hat. IIRC sind das max. 5GB Datenbankgröße und max. 5 User. Die Compact ist noch begrenzter.

SvB 13. Okt 2014 10:24

AW: lokale Multiuser DB gesucht
 
Das ist kein Problem, in der Zentrale des Kunden ist bereits ein vollwertiger SQL Server vorhanden und für die Clients genügt dann der Express, dass ist dann ja nur ein User.

Uwe Raabe 13. Okt 2014 10:43

AW: lokale Multiuser DB gesucht
 
Zitat:

Zitat von OlafSt (Beitrag 1275720)
Achte darauf, das die Express-Variante von SQL-Server ein paar Limits hat. IIRC sind das max. 5GB Datenbankgröße und max. 5 User. Die Compact ist noch begrenzter.

Die aktuelle Express Version hat ein Limit von 10GB pro Datenbank (ohne Log-Dateien), 1GB RAM und kann maximal 1 CPU (Socket) und davon maximal 4 Cores verwenden.

Eine Beschränkung der gleichzeitig angemeldeten User gibt es meines Wissens nicht, aber die pro Verbindung verbrauchten Ressourcen könnten da indirekt (insbesondere bei den 1GB RAM) schon begrenzend wirken.

SvB 14. Okt 2014 16:42

AW: lokale Multiuser DB gesucht
 
So, Kunde ist jetzt davon überzeugt, auf den SQL Server zu wechseln, damit die Probleme endlich beseitigt werden.
SQL Standard 2008 ist bereits vorhanden, auf die Clients kommt der Express.

Uwe Raabe 14. Okt 2014 17:25

AW: lokale Multiuser DB gesucht
 
Zitat:

Zitat von SvB (Beitrag 1275905)
So, Kunde ist jetzt davon überzeugt, auf den SQL Server zu wechseln, damit die Probleme endlich beseitigt werden.
SQL Standard 2008 ist bereits vorhanden, auf die Clients kommt der Express.

Geht doch...

SvB 14. Okt 2014 18:07

AW: lokale Multiuser DB gesucht
 
Genau, dass die Kunden einem nie etwas glauben, wenn man denen was sagt.

p80286 14. Okt 2014 18:25

AW: lokale Multiuser DB gesucht
 
Zitat:

Zitat von SvB (Beitrag 1275918)
Genau, dass die Kunden einem nie etwas glauben, wenn man denen was sagt.

Vorsicht! Ich bin auch Kunde, was für unausgegorenen Mist man da manchmal zu hören bekommt.....

Gruß
K-H

SvB 15. Okt 2014 06:31

AW: lokale Multiuser DB gesucht
 
Zitat:

Zitat von p80286 (Beitrag 1275923)
Vorsicht! Ich bin auch Kunde, was für unausgegorenen Mist man da manchmal zu hören bekommt.....

Sorry, das sollte nicht allgemein gelten. Ich bin ja auch Kunde.
In dem Moment als ich das geschrieben habe, hatte ich nur an den einen speziellen Kunden mit dem Hintergrund gedacht, dass ich schon ca. 2 Jahre damit beschäftigt bin davon zu überzeugen, dass das bisherige System an seine Grenzen gestoßen ist und ein Umstieg erforderlich ist. Bisher hatte man es nicht eingesehen und bei den Mitarbeitern die das Programm nutzen hat sich eine große Unzufriedenheit aufgebaut.
Ich bin ja nicht nur der Entwickler, sondern habe auch Beratungsfunktion und sehe es als Pflicht meine Kunden darauf hinzuweisen, wenn es irgendwo klemmt oder wenn es zukünftig Probleme geben kann.
Wenn man also so lange gegen eine Wand spricht, bis es fast kracht und man selbst in hohem Maß gefrustet ist, da kommt halt auch schon mal "unausgegorener Mist" aus einem raus.

Darlo 15. Okt 2014 08:03

AW: lokale Multiuser DB gesucht
 
Was sich bei mir bewährt hat ist eine schriftliche "Gefahrenmeldung" mit einem Lösungsansatz, dann bist am Ende wenigstens nicht Deine Reputation los, zumindest auf "Entscheider-Ebene".

Uwe Raabe 15. Okt 2014 08:08

AW: lokale Multiuser DB gesucht
 
Zitat:

Zitat von Darlo (Beitrag 1275951)
Was sich bei mir bewährt hat ist eine schriftliche "Gefahrenmeldung" mit einem Lösungsansatz, dann bist am Ende wenigstens nicht Deine Reputation los, zumindest "Entscheider-Ebene".

Das kann ich bestätigen! Manchmal reicht eine entsprechende Mail mit passendem CC oder ein Eintrag im Bugtracker um die Verantwortung für eine mögliche Fehlentscheidung an der richtigen Stelle zu markieren.

SvB 15. Okt 2014 08:14

AW: lokale Multiuser DB gesucht
 
Gute Idee. Wir machen das bereits im Bereich der Hardware und Netzwerkbetreuung, sollte ich auch bei der Softwareentwicklung einführen.

Für alle die es interessiert hier ein Beispieltext:

Risk-Memo

Sehr geehrter Herr .....

wir haben in Ihrer EDV einen Mangel gefunden, durch den Ihr Betrieb bzw. Ihre Produktion gefährdet ist. Da dieses Problem gravierende Folgen verursachen kann, wird zur Gewährleistung unserer Informationspflicht dieser Bericht erstellt.
Ausgeführte Tätigkeiten: .....
Festgestellt am: .....
Festgestellt durch: ....
Mangel: ......
Weitere Schritte zur Risikominimierung: ........

p80286 15. Okt 2014 10:07

AW: lokale Multiuser DB gesucht
 
Zitat:

Zitat von SvB (Beitrag 1275946)
Zitat:

Zitat von p80286 (Beitrag 1275923)
Vorsicht! Ich bin auch Kunde, was für unausgegorenen Mist man da manchmal zu hören bekommt.....

Sorry, das sollte nicht allgemein gelten.

War auch nicht ganz ernst gemeint.

Zitat:

Zitat von SvB (Beitrag 1275946)
, da kommt halt auch schon mal "unausgegorener Mist" aus einem raus.

ich dachte da eher an Aussagen wie: "Tabellennamen wie F2AGT45 beschleunigen den Datenzugriff" "Je mehr Indexe desto langsamer wird der Server" (man beachte den Plural)
Wobei die letzte Aussage so gemeint war, daß sich die Geschwindigkeit der Datenübertragung vermindert.

Und natürlich ist ORACLE, der MS-SQL-Server,Firebird.... die Datenbank und alles andere nur Mist.

An solche Aussagen dachte ich.

Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:46 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz