Hallo!

> > > Geht eigentlich auch so etwas wie:
> > >
> > > UPDATE ... SET spalte1 = (id IN (...)), spalte2 = (id IN (...)),
...
> > >
> > > Dann h�tte man immer nur 1 Update.
> >
> > Es geht. Hab's gerade probiert. ;-)
>
> H�? Schreib mal das SQL aus...
>
> Meinst Du das:
>
> Update tabelle set spalte1 = (id in (1,2,3,4))
>
> Was genau soll das machen?

Das Formular hat 11 Felder mit IDs - gef�llt durch die 440 Checkboxen.
Also so, wie ich es in meinem L�sungsvorschlag beschrieben habe. Die 11
Zeichenketten werden direkt in folgendes Statement eingesetzt oder als
Parameter an eine PROCEDURE �bergeben. Statt der 22 Updates macht man
aber nur 1 einziges:

UPDATE tabelle SET
       spalte1 = (id IN (...liste1...)),
       spalte2 = (id IN (...liste2...)),
       spalte3 = (id IN (...liste3...)),
       ...
       spalte11 = (id IN (...liste11...))

Der Ausdruck "(ID IN (...))" liefert entweder TRUE oder FALSE und kann
so der Spalte zugewiesen werden.

Beim Update ergeben sich somit f�r jede Zeile (id) v�llig andere Werte,
je nachdem, ob die aktuelle id eben in der Liste zur Spalte enthalten
ist oder nicht.

Mein Test:
Tabelle mit id (Autowert) und spalte1 bis spalte3 (Ja/Nein). Durch
einfaches Anklicken habe ich 10 Zeilen mit beliebigen Werten gef�llt.

id      s1      s22     s3
1       Ja      Ja      Nein
2       Nein    Nein    Nein
3       Nein    Nein    Ja
4       Ja      Nein    Nein
5       Nein    Ja      Ja
6       Ja      Nein    Nein
7       Nein    Ja      Ja
8       Ja      Nein    Nein
9       Nein    Ja      Nein
10      Ja      Nein    Ja

Und dann mein UPDATE:

UPDATE test
   SET s1 = (id In (1,2,3,4)),
       s2 = (id In (4,5,6,7)),
       s3 = (id In (7,8,9,10));

Und heraus kam tats�chlich:

id      s1      s2      s3
1       Ja      Nein    Nein
2       Ja      Nein    Nein
3       Ja      Nein    Nein
4       Ja      Ja      Nein
5       Nein    Ja      Nein
6       Nein    Ja      Nein
7       Nein    Ja      Ja
8       Nein    Nein    Ja
9       Nein    Nein    Ja
10      Nein    Nein    Ja

Verbl�ffend einfach, aber vollkommen logisch, oder?

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

Antwort per Email an