Hallo Joachim und Claudius Vielen Dank f�r Eure Hilfe. Ihr habt mir die n�tigen Inputs gegeben, damit ich das Problem l�sen konnte. Ich habe jetzt eine L�sung so �hnlich wie Claudius sie vorgeschlagen hat und die funktioniert ganz gut. Das ganze l�uft (im Moment jedenfalls noch) auf Access, deshalb geht die L�sung mit dem Trigger nicht. Und: Ich verwende die PC-Namen nicht als Schl�ssel sondern ein ganz normale ID. Deshalb sollte es auch nicht zu dem beschriebenen Chaos f�hren.
Vielen Dank nochmals und liebe Gr�sse pipo ----- Original Message ----- From: "Joachim van de Bruck" <[EMAIL PROTECTED]> To: "ASP Datenbankprogrammierung" <[EMAIL PROTECTED]> Sent: Wednesday, November 13, 2002 10:27 PM Subject: [aspdedatabase] AW: [aspdedatabase] so was �hnliches wie autowert Hallo! Alte PC-Namen wieder neu zu verwenden halte ich f�r eine gef�hrliche Idee, die immer dann zum Chaos f�hrt, wenn der Name auch als Fremdschl�ssel in anderen Tabellen vergeben wird. Mache das also nur, wenn Du neben diesem "sauberen" PC-Namen einen anderen Prim�rschl�ssel hast (Ger�tenummer oder ID oder GUID). Den neuen Namen, bzw. die neue Nummer findest Du am einfachsten, in dem Du Datens�tze nicht l�schst, sondern stattdessen mit einem Flag versiehst, mit dem Du sowohl freie Nummern suchen als auch die gel�schten PCs aus den Auswertungen ausschlie�en kannst. Sehr elegant geht das in einem INSTEAD-OF-Trigger FOR INSERT, der zu einer View definiert wird, so dass Du innerhalb des Triggers in die Tabelle einf�gen kannst. Die neue Nummer findest Du dann mit DECLARE neueNummer INT SELECT TOP 1 neueNummer = Nummer FROM pcs WHERE gel�scht = 1 ORDER BY Nummer ASC IF @@ROWCOUNT = 0 SELECT neueNummer = MAX(Nummer) + 1 FROM pcs In der Datenbank ist die Nummer also numerisch (INT). Das Pr�fix setzt Du erst in einer View davor. Da die Anzahl der PCs sicherlich �berschaubar ist, kannst Du auch einfach eine zus�tzliche Tabelle mit 50 oder 5.000 PC-Namen anlegen in der Du dann lediglich vermerkst, ob eine Nummer bereits vergeben oder frei ist. Freundliche Gr��e Joachim van de Bruck > -----Urspr�ngliche Nachricht----- > Von: P. Schwander [mailto:elvis@;clients.ch] > Gesendet: Mittwoch, 13. November 2002 16:44 > An: ASP Datenbankprogrammierung > Betreff: [aspdedatabase] so was �hnliches wie autowert > > > Hallo Miteinander > > Ich versuche eine Verwaltung f�r PC's zu schreiben. Dabei > kann ich folgendes Problem nicht l�sen: In der Datenbank > werden die Namen der Computer gespeichert (sie sehen in etwa > so aus PC001, PC002, ...). Die Namen d�rfen nat�rlich nur > einmal vorkommen und bei einem neuen Computer soll ein > einsprechender Name vorgeschlagen werden. Ich k�nnte das ja > mit Hilfe eines Autowertes bewerkstelligen, doch wenn ein > Computer gel�scht wird, soll mir beim n�chsten Computer der > Name des gel�schten Computers vorgeschlagen werden (so dass > keine L�cken entstehen). Haat jemand eine Idee, wie ich (auf > vern�nftige Weise) eindeutige Namen bekomme (ohne L�cken), > die eindeutig sind? > > Vielen Dank f�r Eure Hilfe! > > -- pipo > > > | [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 > | [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 | [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
