Andy: Datensatz in MSQLserver 7 updaten

Hallo!

ich moechte einen Datensatz in einer DB auf dem SQlserver 7 updaten.
Bloss wie mache ich das. Ich habe schon alle moeglichkeiten ausgeschoepft und es geht nicht.

Momentaner Quellcode

set datconn2 = server.CreateObject("ADODB.Connection")
set RS2 = server.CreateObject("ADODB.Recordset")
on error resume next
    
'----------------------------
'Datenbankverbindung oeffnen
'----------------------------
datconn2.Open "DSN=DB;UID=test;PWD="

selec = "select * from testtabelle where BNnummer='" & BNnummer & "'"
RS2.Open selec ,datconn2 ,adOpenKeyset ,adLockOptimistic

RS2.Fields("LInummer") = LInummer
RS2.Update

Kann mir da einer weiterhelfen.

Gruss

Andy

  1. Hallo Andy,

    soso, updaten willst du ;-)

    selec = "select * from testtabelle where BNnummer='" & BNnummer & "'"

    warum benutzt du dann SELECT und nicht UPDATE als SQL Befehl ?

    mit SELECT kann man nur Daten aus einer DB auslesen, um etwas in die Datenbank zu schreiben muss man  ...

    INSERT fuer einen komplett neuen Datensatz verwenden, oder eben
    UPDATE um einen Teil eines bestehenden Datensatzes zu veraendern.

    Kurz zur Anwendung des UPDATE SQL-Statements :

    allgemein :
    UPDATE <TABELLENNAME> SET <SPALTENNAME>=<WERT> WHERE <SPALTE>=<BEDINGUNG>

    auf dein Problem sollte folgendes passen :

    sql = "UPDATE testtabelle SET BNnummer='" & BNnummer & "' WHERE LInummer=" & LInummer
    RS2.Open sql ,datconn2 ,adOpenKeyset ,adLockOptimistic

    ich hoffe du kommst damit schomal weiter, und hast den Unterschied zwischen UPDATE und SELECT verstanden ;-)

    Gruss
    Holger

    1. Hallo Holger,

      Hallo Andy,

      soso, updaten willst du ;-)

      selec = "select * from testtabelle where BNnummer='" & BNnummer & "'"
      warum benutzt du dann SELECT und nicht UPDATE als SQL Befehl ?

      mit SELECT kann man nur Daten aus einer DB auslesen, um etwas in die Datenbank zu schreiben muss man  ...

      INSERT fuer einen komplett neuen Datensatz verwenden, oder eben
      UPDATE um einen Teil eines bestehenden Datensatzes zu veraendern.

      [...]

      ADO kann Datensätze eines Recordsets (die mit SELECT ausgelesen wurden)
      auch ändern. Die Vorgehensweise von Andy war daher schon richtig.

      [...]

      sql = "UPDATE testtabelle SET BNnummer='" & BNnummer & "' WHERE LInummer=" & LInummer
      RS2.Open sql ,datconn2 ,adOpenKeyset ,adLockOptimistic

      [...]

      Hierzu noch ein Hinweis: http://www.aspfaq.de/faq/index.asp?FID=4&ELE=354

      Tschau, Stefan

      1. Hi Stefan,

        ADO kann Datensätze eines Recordsets (die mit SELECT ausgelesen wurden)
        auch ändern. Die Vorgehensweise von Andy war daher schon richtig.

        Ups, das wusste ich nicht, aber irgendwie wird der Code bestimmt lesbarer wenn ich ein Update auch mit einem UPDATE mache ...

        Hierzu noch ein Hinweis: http://www.aspfaq.de/faq/index.asp?FID=4&ELE=354

        Tststs, da verweise ich alle Nase lang auf deine ASP-FAQ Seiten, und hab' sie selber noch nicht ganz durchgelesen. Asche ueber mein Haupt !

        Gruesse
        Holger

    2. Hi Holger!

      die Idee hatte ich auch schon, bloss dies funktioniert
      auch nicht. Wie gesagt alle erdenklichen Moeglichkeiten habe
      ich schon ausgeschoepft.

      Vielleicht hast du noch eine andere Moeglichkeit.

      Trotzdem danke

      Gruss

      Andy

  2. Hallo Andy,

    [...]

    ich moechte einen Datensatz in einer DB auf dem SQlserver 7 updaten.
    Bloss wie mache ich das. Ich habe schon alle moeglichkeiten ausgeschoepft und es geht nicht.

    [...]

    kommt eine Fehlermeldung ? Wenn ja, welche?
    Was passiert, wenn keine Fehlermeldung kommt?

    '----------------------------
    'Datenbankverbindung oeffnen
    '----------------------------
    datconn2.Open "DSN=DB;UID=test;PWD="

    das würde ich so machen:
    datconn2.Open "DB", "test", "<pwd>"

    selec = "select * from testtabelle where BNnummer='" & BNnummer & "'"
    RS2.Open selec ,datconn2 ,adOpenKeyset ,adLockOptimistic

    RS2.Fields("LInummer") = LInummer
    RS2.Update

    [...]

    Sieht doch gut aus. Sollte eigentlich funktionieren (Wenn LINummer kein Autowert ist)
    Ungeachtet dessen ist die von Holger beschriebene Vorgehensweise,
    das Update per SQL-Statement durchzuführen, trotzdem besser.

    Tschau, Stefan