karsten: Leeres Datenfeld ändern -> nicht möglich!

Hallo zusammen,

habe ein kleines Problem mit dem Ändern eines Feldes in einer Datenbank. Und zwar kann es vorkommen das beim Anlegen eines Datensatzes ein oder mehere Felder nicht genutzt werden.

Problem:
Wenn ich jetzt ein RS öffne und ein leeres Datenfeld versuche zu ändern passiert nichts, rein gar nichts! Hier ganz simple mein qtext:

If Not Request("tele1") = rsupdateuser(11) Then
 rsupdateuser(11) = Request("tele1")
End If

Es muss doch eine Möglichkeit geben nachträglich hier ein Wert zu speichern. Ohne beim anlegen ein Hilfszeichen, wie "-" oder " " zu vergeben.

Vielen Dank schon mal für eure Hilfe.

karsten

  1. Hi,

    If Not Request("tele1") = rsupdateuser(11) Then
    rsupdateuser(11) = Request("tele1")
    End If

    Vorschlag zur Güte: Ich glaube, es gab da in VB(-Script) mal so eine Konvention, das alle Vergleiche mit NULL auch NULL ergeben und damit nicht true und nicht false sind. Wenn du also rsupdateuser(11) initial in der DB nicht befüllt hattest, dann ergibt dieser Vergleich nicht true, auch wenn man davon ausgehen könnte, das die Werte ja durchaus unterschiedlich sind. Ein möglicher Umbau wäre:
    if (IsNull(rsupdateuser(11)) And request("tele1") <> "" then
      rsupdateuser(11) = Request("tele1")
    end if
    If Not Request("tele1") = rsupdateuser(11) Then
      rsupdateuser(11) = Request("tele1")
    End If

    Ist etwas ineffizient, könnte aber das gewünschte Ergebnis haben.

    MfG
    Rouven

    --

    -------------------
    ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
  2. Hallo,

    If Not Request("tele1") = rsupdateuser(11) Then
     rsupdateuser(11) = Request("tele1")
    End If

    Generell empfiehlt sich eigentlich die Verwendung der entsprechenden
    DML-Statements zur Aktualisierung einer Datenbank. Also bspw.:

    INSERT INTO tabelle (<feld1>,<feld2>) VALUES (<wert1>,'<wert2>')
    UPDATE <tabelle> SET feld2 = 'wert2' WHERE feld1 = wert1
    DELETE FROM tabelle WHERE feld1 = wert1

    Aber wenn du unbedingt ein Recordset verwenden willst, solltest du
    u.a. beachten, dass "" <> NULL ist (einfach mal Googlen :) und falls
    du Memofelder verwendest, siehe http://www.aspfaq.de/index.asp?FID=96&ELE=8359
    (Trifft ggfs. auch hier zu)

    Tschau, Stefan

  3. Vielen Dank euch beiden,

    Habt mir beide sehr geholfen(Beides läuft wie sau).

    Nochmals Besten Dank

    Karsten