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

Antwort per Email an