Hallo! > > Es geht eigentlich ganz einfach mit Access. > > > > Zun�chst definiert man ein Modul mit folgender VBA-Funktion: > > > > Function neueOrdnung > > Static nOrd > > If IsEmpty(nOrdn) Then > > nOrdn = 10 > > Else > > nOrdn = nOrdn + 10 > > End If > > neueOrdnung = nOrdn > > End Function > > > > Diese Funktion erzeugt fortlaufend Zahlen in Zehnerschritten > > und kann in > > einem Update-Statement eingesetzt werden: > > > > UPDATE tabelle SET orderID = neueOrdnung > > > > Damit jetzt die neuen Ordnungszahlen nicht in willk�rlicher > > Reihenfolge > > sondern abh�ngig von der bereits bestehenden Ordnung gesetzt werden, > > muss man die Tabelle �ber ein SUB-SELECT definieren: > > > > UPDATE (SELECT * FROM tabelle order by orderID) SET orderID = > > neueOrdnung > > > > Fertig, oder? > > Tja... Das geht wahrscheinlich in Access, aber �ber ADO siehts da wieder > ganz anders aus...
Warum? ADO schickt doch das UPDATE-Kommando an Access, oder? Trotz ADO wird der Befehl also von Access ausgef�hrt. (Notfalls: ServerSide-Cursor) > Und wie static ist den nOrd? Was ist, wenn man zwei Updates macht? Z�hlt > dann neueOrdnung munter weiter? Jetzt wo Du es sagst: sicherlich innerhalb einer Connection, wahrscheinlich aber auch so lange der Server nicht neu gebootet wird. Workaraound: 1 zus�tzlicher Parameter mit dem die statische Variable wieder auf 0 gesetzt wird. "SELECT neueOrdnung(0); UPDATE (...) SET orderID = neueOrdnung(1);" > Und was ist, wenn zwei Updates gleichzeitig laufen, die neueOrdnung > alternierend aufrufen? (Ist unter SQLServer wahrscheinlicher als unter > Access) Ja, auch daran kann man denken: Z. B. Tabelle sperren (adLockPessimistic). > > Im SQL Server macht man es genau so, nur dass man statt der > > VBA-Funktion > > eine benutzerdefinierte Funktion verwendet. Allerdings wei� ich (noch) > > nicht, wie man da das Problem mit "Static" umsetzt. Hilft mir einer? > > > > Naja... Man w�rde das halt irgendwo speichern... Z.B. in einer Tabelle, > aber was ist mit gleichzeitigem Zugriff von mehreren Prozessen(siehe > oben)? Siehe oben! Hm, nicht b�se sein, wenn einer sagt, dass es doch geht. Ich bin mir eigentlich sicher, dass Du die Antworten auf Deine Fragen selber schon gewusst hast, oder? Und so ein Loop in ASP ist doch wirklich nicht sch�n. Eigentlich geh�rt so ein Job doch in eine Stored Procedure und die kann man ja auch in Access einrichten. Freundliche Gr��e Joachim van de Bruck | [aspdedatabase] als [email protected] subscribed | http://www.aspgerman.com/archiv/aspdedatabase/ = Listenarchiv | Sie k�nnen sich unter folgender URL an- und abmelden: | http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedatabase.asp
