Avatar billede mortency Nybegynder
04. juni 2002 - 16:49 Der er 6 kommentarer og
1 løsning

Feil i kode. Vil ikke hente ut oRS("OID")

<%
    KID = Request.Form("KID")
    error = ""
   
    ' Sjekk om handlekurven er tom...
    If Session("totalsum") = 0 Then
        error = error & "Du har ikke bestillt noen varer! "
    End If
   
    txtDato = Date()
    txtDato = Day( txtDato ) & "." & Month( txtDato ) & "." & Year( txtDato )

    ' SKAL ÅPNE TABELLEN ORDRE.
    connStr = "Driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("../db/butikk.mdb")
    Set oConn = CreateObject("adodb.connection")
    oConn.Open connStr
  ' Åpne Recordset
    Set oRS=Server.CreateObject("ADODB.Recordset")
    oRS.CursorLocation = 2 ' adUseServer
    oRS.CursorType = 0 ' adOpenForwardOnly
    oRS.LockType = 3 ' adLockOptimistic
    SQL = "SELECT * FROM tblOrdre"
    oRS.Open SQL, oConn, , , &H0001 ' adCmdText
   
    ' Legg til ny ordre
    oRS.AddNew
    oRS("OKID") = KID
    oRS("ODato") = txtDato
    oRS("OStatus") = "P"
    oRS.Update

    ' Hente ut ordre id
    OID = oRS("OID")
   
    ' Lukke ordren
    oRS.Close
   
    ' SKAL ÅPNE TABELLEN ORDRELINJER.
    SQL = "SELECT * FROM tblOrdrelinjer"
    oRS.Open SQL, oConn, , , &H0001 ' adCmdText

    For i=1 To Session("varer")
        oRS.AddNew
        oRS("OLOID") = OID
        oRS("OLPID") = Session("PID" & i)
        oRS("OLKvant") = Session("Antall" & i)
        oRS.Update
    Next
   
    oRS.Close
   
    If error <> "" Then
    Response.Clear
    %>
    <html>
    <body onload="window.alert('En feil skjedde! <% =error %>');
            window.history.back();">
    &nbsp;</body>
    </html>
    <%
    Response.End
    End If

    Session.Abandon
   
    Response.Redirect("butikk_takk.asp")   
%>
Avatar billede tmceu Praktikant
04. juni 2002 - 17:21 #1
Efter du laver din oRS.Update, skal du sandsynligvis bare indsætte en oRS.Resync for at få OID opdateret fra databasen.
Avatar billede mortency Nybegynder
04. juni 2002 - 17:27 #2
FEILMELDING:

Error Type:
ADODB.Recordset (0x800A0CB3)
Current provider does not support refreshing underlying values.

    ' Legg til ny ordre
    oRS.AddNew
    oRS("OKID") = KID
    oRS("ODato") = txtDato
    oRS("OStatus") = "P"
    oRS.Update
    oRS.Resync 'DENNE LINJE ACCEPTERES IKKE!
Avatar billede tmceu Praktikant
04. juni 2002 - 20:37 #3
Prøv at ændre din cursortype til adOpenDynamic
Avatar billede mortency Nybegynder
05. juni 2002 - 16:54 #4
Får fortsatt samme feilmelding.
Avatar billede tmceu Praktikant
05. juni 2002 - 17:00 #5
Inden jeg konkluderer, at din databases simpelt hen ikke kan håndtere refresh, kan du lige prøve at ændre denne linie:

connStr = "Driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("../db/butikk.mdb")

til denne:

connStr = "Data Source=" & Server.Mappath("../db/butikk.mdb")& ";Provider=Microsoft.Jet.OLEDB.4.0;"

Der er i flere sammenhænge problemer med Access driveren vs Jet, så det er værd at prøve. Det er jo netop provideren den klager over.
Avatar billede mortency Nybegynder
05. juni 2002 - 17:43 #6
//TMCEU
Hvis jeg fjernet ressync og endret til din db conn så virket det. Takk for hjelpen :-)

Morten
Avatar billede tmceu Praktikant
05. juni 2002 - 17:59 #7
Det var så lidt :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester