Glengamoi · AspHeute (Artikel) · .NET Heute (RSS-Suche) · .NET Blogs · Glengamoi Suche (Installieren via Klick)

Glengamoi

Die Diskussionsforen der deutschen .NET Community
Willkommen bei Glengamoi. Anmeldung | Registrieren | Hilfe
in Suchen

Problem mit dem DMax Befehl

Letzter Beitrag 08-25-2006 8:36 von ToniFarkas. 7 Antworten.
Seite 1 von 1 (8 Treffer)
Beiträge sortieren: Zurück Weiter
  • 08-23-2006 7:31

    Problem mit dem DMax Befehl

    Hallo Leute,

    es gelingt mir einfach nicht, aus einer DB-Tabellenspalte "ID1" den Maximalwert auszulesen

    Es handelt sich um eine ASP-Seite

    Die Datenbankverbindung funktioniert, kan Daten auslesen und abspeichern...

    Hier der Code:

    <%

    Dim Maxwert

     WITH Request  
     
     Select Case .QueryString("Save")

     Case "1"  'Neuen Datensatz (8D) im HauptForm anlegen
      
      ConnectStr = "Driver={Microsoft ODBC for Oracle};Server=QDB.world;Uid=user;Pwd=user;"
      SQL_Str = "QA_SRC.DEFECT_REP_TAB"
     
      SET DBconn= Server.CreateObject("ADODB.Connection")
      DBconn.Open ConnectStr
     
      SET RS1= Server.CreateObject("ADODB.Recordset")
      RS1.Open SQL_Str, DBconn, 1, 3, 2
      
      Maxwert = DMax("[ID1]", "QA_SRC.DEFECT_REP_TAB")
      Response.Write(Maxwert)
      Response.End

     End Select
     END WITH
    %>

    Was mache ich (Anfänger) falsch?

    Abgelegt unter:
    • IP-Adresse ist Registriert
  • 08-23-2006 8:15 Antwort zu

    Re: Problem mit dem DMax Befehl

    Wie wäre es eigentlich gleich von der Datenbank
    den Max-Wert anzufordern anstatt die gesamte
    Tabelle (könnte ja schließlich groß sein) auf den Client (ASP) zu ziehen?

    Chris
    • IP-Adresse ist Nicht registriert
  • 08-23-2006 9:39 Antwort zu

    AW: Re: Problem mit dem DMax Befehl

    Na das möchte ich ja...

    Ich möchte einen neuen Datensatz anlegen, dazu brauche ich den Max-Wert von ID1 um mit +1 hochzuzählen.

    Habe es mit "RS1.MoveLast" versucht und teilweise sogar mit Erfolg.

    Leider entspricht die Datensatz Reihenfolge nicht immer der ID1-Zahlen-Reihenfolge!

    Ich nehme an, wegen Mehrfachzugriff auf die DB?

    Eine Auto-Wertvergabe bei ID1 führte früher schon zur Problemen...

    Habe mit Access dann mit DMax...+1 gute Erfahrungen gemacht (3 Jahre problemloser Zugriff)

    Möchte jetzt das Gleiche mit einer ASP seite realisieren...

    Gruss,

    Toni

    • IP-Adresse ist Registriert
  • 08-23-2006 10:01 Antwort zu

    RE: Problem mit dem DMax Befehl

    Set rst = con.execute("SELECT MAX(ID1) FROM table", , adCmdText)
    intMax = rst.Fields(0).Value
    con.execute "INSERT INTO tabelle (ID1, Term) VALUES (intMax + 1, 'Wert')", ,
    adExecuteNoRecords

    ist aber heikel, weil konkurrierende zugriffe nicht berücksichtigt werden
    lg, christian
    • IP-Adresse ist Nicht registriert
  • 08-23-2006 10:47 Antwort zu

    AW: RE: Problem mit dem DMax Befehl

    Danke Christian,
    habe probiert,
    gibt leider "0" (Null) zurück

      Set rst = con.execute("SELECT MAX(ID1) FROM QA_SRC.DEFECT_REP_TAB", , adCmdText)
      intMax =rst.Fields(0).Value
      Response.Write(CLng(intMax))
      Response.End

    was mache ich falsch?
    Gruss,
    Toni

     

    • IP-Adresse ist Registriert
  • 08-24-2006 6:59 Antwort zu

    AW: RE: Problem mit dem DMax Befehl

    Hallo Christian,

    ES FUNCT !!!

    Der Fehler lag daran, dass ich den Variablen "con" übernommen habe,
    bei mir ist es "DBconn" 

    Danke nochmals!
    Gruss,
    Toni

    • IP-Adresse ist Registriert
  • 08-24-2006 11:25 Antwort zu

    RE: Problem mit dem DMax Befehl

    > Hallo Christian,ES FUNCT !!!Der Fehler lag daran, dass ich
    > den Variablen "con" übernommen habe,bei mir ist es "DBconn"

    na bitte - was mich jetzt wundert ist, dass es dein script da nicht sofort
    *aufgestellt* hat. verwendest du etwa kein *option explicit*? das würde
    diese kategorie fehler sofort offensichtlich machen.

    wie gesagt, für konkurrierende zugriffe ist das nicht geeignet, da müsstest
    du das etwa so aufbauen:
    rst.open "SELECT ID, Term FROM table WHERE ID = 0", , adOpenStatic
    rst.AddNew (ID, Term)
    rst.Update
    intNewID = rst.Fields("ID").Value
    rst.Close

    lg, christian
    • IP-Adresse ist Nicht registriert
  • 08-25-2006 8:36 Antwort zu

    AW: RE: Problem mit dem DMax Befehl

    Danke Christian,
    bin halt ein Anfänger...
    werde mich noch tiefer in die Materie einlesen müssen, bis es wirklich klappt.
    Schönen Gruss,
    Toni

     

    • IP-Adresse ist Registriert
Seite 1 von 1 (8 Treffer)