![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Inventar
![]() Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552
|
![]() Kennt jemand ein paar Howto's über die "Do's and Don'ts" bei der Entwicklung von Programmen mit Datenbankzugriff für mehrere Benutzer?
Ich weiß, bei Access is das eher eine "gepfuschte Lösung", da nie wirklich die Tabelle gesperrt wird, wenn ein User gerade darauf arbeitet. Aber ich denk mir da gibts sicher auch ein paar brauchbare Hints. ![]() A paar Sachen hab ich schon gefunden - nur vielleicht kennt ja von euch ein paar besonders gute. Es geht vor allem, wenn das ganze ausprogrammiert ist - also nicht wenn man ein Formular an eine Tabelle bindet und dann die Felder automatisch füllen lässt. ![]() |
![]() |
![]() |
![]() |
#2 |
Master
![]() Registriert seit: 22.03.2000
Alter: 66
Beiträge: 550
|
![]() Hi!
Ich sehe, du hast das Problem eigentlich erkannt. Meine Grundregeln lauten: 1. Keine gebundenen Steuerelemente verwenden. Die Daten in ein Recordset laden und bearbeiten. Vor dem Speichern prüfen, ob der Datensatz von einem anderen Benutzer verändert wurde. 2. Das Frontend nicht mit ACCESS erstellen. Das hab ich anfangs gemacht. Die Erfahrung hat gezeigt, daß nach jeder neuen Version von ACCESS der Code nicht mehr funktioniert. Außerdem braucht man auf jedem Client ACCESS (und eine Lizenz). Ich verwende jetzt VB. Das ergibt eine EXE, die beliebig oft installiert werden kann. Das größte Problem dabei ist das Erstellen der Installationsroutine. mfg WB |
![]() |
![]() |
![]() |
#3 | |
Inventar
![]() Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552
|
![]() Zitat:
Hab ich erst einmal wirklich verwendet - weil es 1. für Leute wartbar sein soll, die sich in VB net so gut auskennen und es 2. schneller geht. (wenn ich dir das ERD der Datenbank zeig, weißt was ich mein, weil das Ding war dann so umfangreich und die Zeit so knapp,.....) Das war aber letztes Jahr einmal... Außerdem bin ich auch von VB 6.0 zu Access gekommen und nicht umgekehrt. ![]() Naja, und was du da ansprichst mit in "Recordset laden und dann nachsehen ob der Datensatz bearbeitet wurde"... Wie macht man das? Ich hab mich bis jetzt nicht wirklich mit dem Thema auseinander gesetzt, darum auch der Thread. Kennst du zufällig eine Seite die sich mit ADO und genau dem auseinandersetzt? Ev. mit einem kleinen Beispielcode/Programm dabei - weil da lernt ma eigentlich immer am meisten und wird in Büchern auch oft verwendet. |
|
![]() |
![]() |
![]() |
#4 |
Master
![]() Registriert seit: 22.03.2000
Alter: 66
Beiträge: 550
|
![]() Hi!
Ich habe meine Weisheit aus Büchern und nächtelangem herumprobieren. Wenn du keine Bücher kaufen willst, versuchs mal mit eMule oder ähnlichem. Empfehlenswert sind z. B.: 1. Die Visual Basic Bibel Ein Buch über VB insgesamt, mit guten Kapiteln über DB-Progammierung. Besonders die Kapselung von DB-Funtionalität in Klassen ist sehr gut erklärt. 2. Datenbanken programmieren mit VB 6 Achtung, es gibt mehrere Bücher mit diesem Titel. Das "richtige" hat ca. 1200 Seiten, und die Originalfassung stammt vom Pabst der DB-Programmierung. (Der Name ist mir momentan entfallen). Das Buch beschäftigt sich mit professioneller DB-Entwicklung, und ist auch als E-Book verfügbar. Für den Einstieg ist das aber ziemlich schwere Kost. Jetz noch eine Kurzbeschreibung: Erstellen des Recordsets (wird auch in der Hilfe von VB oder ACCESS beschrieben. Wenn vorhandene Daten abgefragt werden ReadOnly. Die DS werden z. B. in einem ListView oder Grid angezeigt. Einen DS zum Bearbeiten auswählen. Der DS wird in einer eigenen Form angezeigt. Die Felder können verändert werden. Nach einer Änderung klickt der User auf "Speichern". Ein Recordset mit diesem DS öffnen. (mit Schreibrecht) Sicherheitshalber vergleichen, ob der Inhalt des DS mit dem vorher ReadOnly geöffneten identisch ist. Wenn nein Meldung ausgeben. Die Änderung des Users in das RS übernehmen. RS Speichern. Die Verbindung zur DB ist immer nur für kurze Zeit notwendig. Der User sieht allerdings den Datenbestand zur Zeit der Recordset-Erstellung. Änderungen durch andere User werden nicht automatisch angezeigt. Eventuell das RS aktualisieren. Soweit die "offizielle Lösung". Ich bastle an einer Lösung, die genauso komfortabel funktioniert wie ACCESS mit gebundenen Steuerelementen. Dabei sollen aber die Nachteile eliminiert werden. Das Ganze ist aber noch nicht reif für die Öffentlichkeit. mfg WB |
![]() |
![]() |
![]() |
#5 | |
Inventar
![]() Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552
|
![]() Zitat:
![]() Werd schaun was sich an ebooks auftreiben lässt. Ich hab eh schon eine riesen Menge an Büchern am Rechner - nur langsam fehlt mir der Überblick. Die werd ich auch mal durchsuchen und natürlich deine Buchtipps nachschauen. ![]() Die Lösung die du da bastelst hört sich interessant an. Falls es da schon was zum ansehen gibt was in die "richtige Richtung" geht und teilweise funktioniert(muss ja nicht fertig sein...) schreib mir bitte eine PM. Falls du es fertig bekommst, denk vielleicht daran und schick mir auch eine PM: ![]() Also nochmals danke. |
|
![]() |
![]() |
![]() |
#6 |
Master
![]() Registriert seit: 22.03.2000
Alter: 66
Beiträge: 550
|
![]() Hi!
Im Prinzip funktioniert's schon. Probleme hab ich mit suchen, sortieren und auto-vervollständigen bei Umlauten. Das liegt an den Steuerelementen von APEX, die auf die deutsche Sprache nicht eingestellt sind. Das kann ich wahrscheinlich nicht beeinflussen. Aber sonst kann man alle Fuktionen von ACCESS nachbilden, und trotzdem mit ungebundenen Steuerelementen arbeiten. mfg WB |
![]() |
![]() |
![]() |
#7 | |
Inventar
![]() Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552
|
![]() Zitat:
![]() Hast eine PM mit meiner Mail-Adresse. Ich dank dir schon mal. ![]() |
|
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|