PDA

Vollständige Version anzeigen : Mehrbenutzung(Frontend /Backend ist klar)


hohmi
09.07.2001, 17:58
das hauptproblem wird sein ,dass
ca 10 user auf genau 4 Datensätze gleichzeitig zugreifen werden ,die aus der slben tabelle stammen , sie werden dann willkürlich "Ja/nein" felder dieser 4 Datensätze markieren , natülich jeder eine andere kombination , diese markierungen werden dann abgelesen und in andere Tabelle übertragen , aber auch hier gilt dass nicht für jeden user eine extra Tabelle ,sondern es ist ein und dieselbe für User 1,2,3,4.
lässt sich sowas realiesieren ohne "Replikation"

danke für jeden Hinweis

Phillip-Berlin
09.07.2001, 19:03
was für eine anwedung soll denn das sein?
bitte mehr infos
sonst antwort:
nein

hohmi
10.07.2001, 14:43
Hallo phillip,

es geht dabei um eien bestellaufnahme (polster u.ä. rot,grün, leder oder stoff usw)
die kunden die daran intresse haben melden sich bei verschiedenen standorten der Firma x
. es gibt eine standard ausstattung (d.h. polster sind so und so gross u. sind best. zeug gefüllt . hat der kunde besondere wünsche. kann dies in einem unterformular ,das alle besonderheiten enthält , mit "ja/nein" feldern markiert werden, in machen fällen müssen dann von den standards welche rausfliegen ,was auch durch markieren von ja/nein entschieden wird .
für stand-alone ist dies schon erledigt,nur wie gesagt bez. netzwerk hab ich zu wenig ahnung ob es möglich ist
es ist eine tabelle die die besonderheiten enthält und eine für die standards, beide sind an unterformulare gebunden, und auf diese beiden tabellen würden im extrem fall bis zu 10 user zugreifen , die tabellen würden dort jeweils als verknüpfungen vorliegen,
die klicken dann auf einen best. button-- dann werden die werte abgelesen und in eine tabelle "bestellungen " übertragen , auch diese tabelle liegt als verknüpfung vor

Goki
10.07.2001, 14:59
Hallo Hohmi ...

wenn ich recht verstehe werden zur gleichen Zeit mehrere Bestellungen über das Netzwerk eingetragen ...

Das Problem hier wäre eine Datenkollision in der DB ...

Jetzt was anderes ... sagt dir was Transaktion!?!?

Du kannst bei Access jedem User einen Transatkionsbereich für seine Eingaben einrichten - wenn er fertig ist werden die Änderungen übertragen und wenn er abbrechen will, werden diese im Zwischenspeicher einfach gelöscht ... große Datenbanken - wie Oracel - haben Transatkionen automatisch integriert ...

Der Code könnte folgendermasen aussehen ...

set db = currentDB ... oder auch OpenDatabase
set rs = db.openrecordset(Tabellenname, dbOpenTable, dbAppendOnly, dbOptimist)

--> mit dbAppendOnly gibst du an, daß
Datensätze nur hinzugefügt werden
können

--> mit dbOptimist ist ist eine Angabe,
daß Änderungen an den Datensätzen
berücksichtigt werden.

rs.BEGINTRANS ' Hiermit wird die Transatktion begonnen ...

Dazwischen baust deinen Code ein ...
Dann baust am Ende eine If-Verzweigung
ein ... Speichern / Abbruch

Bei Abbruch --> rs.rollback
Bei Speichern rs.committrans

So entsteht keine Kollision und das was die Leute gleichzeitig machen, wird von der DB nacheinander abgearbeitet, auch wenn diese gleichzeitig speichern sollten, was fast nie passieren kann ... denn Millisekunden werden auch gezählt beim Zeitstempel ...

cu
Goki

------------------
cu
Goki
http://goki.de

hohmi
10.07.2001, 15:14
Hallo Goki,

dass klingt gut , sehr gut

ich müsste nur noch genauer wissen wenn du "dazwischen" schreibst , meist du
damit
'rs.begintrans
-code
-code
-code
was kommt hier ,vor der if schleife die ans ende soll?

lässt sich damit auch das markieren der "ja/nein" felder (die ja aus der selben tabelle kommen ) realisieren

danke dir

Benjamin
10.07.2001, 20:19
Hallo Hohmi,

interessantes Thema...

falls Du nicht weiter kommst: wir arbeiten mit einer ähnlichen Funktion, aber einem anderen System: dem jeweiligen Bestelldatensatz ist ein Datensatz in einer Ordertabelle zugeordnet, in dem die jeweiligen Werte festgehalten werden (Polster = grün, Tischdecke = rot). Dadurch arbeiten zwar alle mit den gleichen Optionstabellen (1=grün=xxx, 2=rot=yyy), da deren Datensätze aber nicht verändert werden sondern nur im Formular ausgelesen (Kombifeld, Datenherkunft), hat sich das Problem erledigt. Darüber hinaus sind die Daten gespeichert und nachvollziehbar.
Gruß
Benjamin

Phillip-Berlin
10.07.2001, 23:42
das mit der transaktion ist zwar eine interessante
lösung hier aber (afaik) nicht nötig
in bestellabwicklungen/ rechnungsstellung erstellen
wir immer als erstes eine eindeutige ID für den
jeweiligen bestell/rechnungsvorgang ... dieser
id werden dann ähnlich wie bei benjamin die genauen
bestellwerte zugeordnet/kopiert .. dann
hast du eine ganz saubere trennung deiner rohdaten zu
deinen bestellungen .. und im übrigen auch keine probleme
im netzwerk, da jeder ja nur in seiner eigenen
bestellung arbeitet

hohmi
11.07.2001, 11:10
hallo benjamin,

würde ichja auch gerne so machen wie ihr , aber es sind etawa 40 standardwerte ,+ 20 extras , wenn ich von den leuten verlange dass ise über dropp down listen ihre auwahl treffen hab ich bald ein knoten im hals
ich hab ausserdem das problem dass zu den werten (standard,extra) immer wieder neues dazu kommt ,das heisst ich muss auch die tabele bestellung dynamisch halten
das mit "rs.begintrans" ist schon ok schade dass er sich nicht mehr gemldet hat

hallo phillip-berlin

mach hier nicht den guru ,was du von dir gibst ist das einmaleins, du hast das problem nicht erkannt

C. Palmetshofer
11.07.2001, 12:07
Hi,

ich denke da gehts nicht um Transaktion - ja/nein, der Ansatz ist schon problematisch!

Du darfst nicht die Stammdaten konfigurieren und daraus eine Bestellung ableiten sondern musst zuerst eine Bestellung anlegen und diese dann konfigurieren.

Gruss

Markus-Düsseldorf
11.07.2001, 12:37
Hallo C. Palmetshofer,
(bin jetzt immer mit diesem namen im forum(vorher hohmi))

dabei könnte aber auch der fall eintreten dass alle gleichzeitig auf die stammdaten zugreiffen , denn ich würde es ,im hinblick auf einfache benutzung so machen, dass ein bestellformular sich öffnet mit ungebunden steuerelementen die dann mit allen standard + extras gefüllt werden, jeweils daneben ja/nein felder , nach auswahl erfolgt übergabe in bestell tabelle.
ginge auch , aber problem vielfachzugiff auf stammdaten bleibt (soweit ich mich mit netzen auskenne

C. Palmetshofer
11.07.2001, 14:29
hallo markus,

Probleme mit gleichzeitigem Zugriff gibts nur beim Schreiben (insert/update/delete) auf ein und demseben Datensatz.

Für den Benutzer ist es nicht erkennbar ob er seine Änderungen an einem Stamm-Datensatz oder einer echten Bestelllung durchführt.

Und ob du die Datensätze vor dem Konfigurieren oder nacher anlegst ist auch egal.

Benjamin
11.07.2001, 22:14
hallo Markus,

1. die vielen Standard- und Optionswerte lassen sich über Optionsgruppen mit Default lösen - wo mehrere Auswahlmöglichkeiten bestehen, machst Du Drop-downs mit Datenherkunft aus Tabellen mit einer 'Position'-Spalte, dann steht Dein Default immer oben. (Haben wir genau so, funktioniert perfekt)
2. selbstverständlich lassen sich sämtliche Tabellen auch im Nachhinein bearbeiten und auch alle Datenherkunftstabellen gleichzeitig lesen. Problematisch wird nur, wenn entweder mehrere User gleichzeitig in den selben BESTELL-Datensatz SCHREIBEN wollen, und Du kannst den Tabellenentwurf nicht ändern, während ein User mit der tabelle arbeitet. (Sehr wohl aber die Daten).

Markus-Düsseldorf
17.07.2001, 13:29
hallo benjamin,

weiss nicht genau wie du das meinst mit gruppieren ,
wenn es dir nichts ausamcht würde ich dir gerne mal die db per mail schicken, keine sorge, erwarte nicht dass du mir die lösung reinschreibst , aber wenn du es siehst , dann siehst du besser was hier bez,. netzwerk gemacht werden müsste, denk ich

@ all

besten dank allen die sich gemeldet haben


gruss markus