Avatar billede snipermode Nybegynder
08. september 2003 - 09:26 Der er 10 kommentarer og
1 løsning

Asp script fra DSN til DSN -less

Hej

Vil gerne omskrive et script fra Subj. men får fejlen;

ADODB.Connection error '800a0e78'
Operation is not allowed when the object is closed.
default.asp, line 74

har flg.;

Set aa = Server.CreateObject("ADODB.Connection")
Linje 74 -> aa.conn "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("database.mdb")
aa.Open "select * from login WHERE (closed = True) AND (remote_host = '" & remote_host & "')", conn, adOpenKeyset, adLockOptimistic
Avatar billede nmh Nybegynder
08. september 2003 - 09:34 #1
Jeg plejer at gøre sådan:
set Conn=server.createobject("adodb.connection")
Conn.open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
          ";Data Source=" & DB_Filnavn
SQL="bla bla bla...."
Conn.execute SQL

og det er jo ikke helt det du gør.
Avatar billede nmh Nybegynder
08. september 2003 - 09:37 #2
men der er flere måder at gøre det på. Du kan jo prøve mit forslag.
Avatar billede eagleeye Praktikant
08. september 2003 - 10:12 #3
Prøv at skrive open i stedet for conn

aa.Open "Provider=Microsoft.Jet.OLEDB.4.0;......
Avatar billede nmh Nybegynder
08. september 2003 - 10:17 #4
skulle have været et svar.
Avatar billede ocp Nybegynder
08. september 2003 - 10:20 #5
aa.Open "select * from login WHERE (closed = True) AND (remote_host = '" & remote_host & "')", conn, adOpenKeyset, adLockOptimistic

Den er HELT gal. Du kan ikke åbne et recordset i din connection - du skal lave en .open på dit recordset i stedet. (eller ændre aa til recordset i stedet for connection)
Avatar billede albana Nybegynder
08. september 2003 - 10:25 #6
Gå ind på
www.connectionstrings.com

Kanon side til at finde den connectionstring du skal bruge.
Avatar billede ocp Nybegynder
08. september 2003 - 10:26 #7
En anden mulighed er at lave en DSN og udskrive conn.connectionstring i browseren og derefter lave den til connectionstring i stedet for at benytte DSN.
Avatar billede snipermode Nybegynder
08. september 2003 - 12:29 #8
Hej Alle ...

please bær over med en newbie..

hele scriptet ser sådan ud;

<%
Set rs = Server.CreateObject("ADODB.Connection")
rs.open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("database.mdb")
rs.conn "select * from login WHERE (closed = True) AND (remote_host = '" & remote_host & "')", conn, adOpenKeyset, adLockOptimistic

set Session("rs") = rs
If not rs.EOF Then
    DO 
    ' Her checkes der efter IP
        if remote_host = rs.fields("remote_host") then
            user = "ikke_ok"
            session("remote_host") = remote_host
        End If
        rs.MoveNext
    Loop Until user = "ikke_ok" OR aa.EOF
    rs.close
    Response.Clear
    Response.Redirect("luk.asp")
    Response.End
End If

If not user = "ikke_ok" Then
%>
  <%   
    If Session("taeller") > 2 Then
        rs.AddNew
        rs("Username") = brugernavn
        rs("password") = password
        rs("dateandtime") = now()
        rs("closed") = true
        rs("remote_host") = request.ServerVariables("REMOTE_HOST")
        rs.update
        rs.close
        response.write("Access to the system are now closed ")
        Session("godkendt")=""
    else   
        rs.AddNew
        rs("username") = brugernavn
        rs("password") = password
        rs("dateandtime") = now()
        rs("closed") = false
        rs("remote_host") = request.ServerVariables("REMOTE_HOST")
        rs.update
        rs.close
        Session("taeller")= Cint(Session("taeller")) + 1
        set rs = Server.CreateObject("ADODB.Recordset")
        rs.open "select * from persons WHERE (username = '"& CStr( brugernavn ) &"') AND (password = '"& CStr( password ) &"')" ', "DSN=check_brugernavn"
        set Session("rs") = rs
       
        if rs.EOF Then
            Session("godkendt")="ikkegodkendt"
            response.write ("You have tried to access:<B> ")
            response.write(cstr(Session("taeller")) + ". time</B></DIV> ")
            rs.close
            indform
        else
            Session("userlevel") = rs.Fields("userlevel")
            Session("Username") = rs.Fields("username")
            rs.close
            Session("godkendt")="godkendt"
            Session("taeller")= 0
                Response.Clear
                Response.Redirect("frameset.asp")
                Response.End
        End If
    End if   
End if
End if
%>
Avatar billede eagleeye Praktikant
08. september 2003 - 17:29 #9
Hej

Jeg vil anbefale dig at bruge variblen rs som recordset og Conn som connection. Så det lettere at læse koden hvis man ved det. Så prøv at rette hele din kode til dette:


<%
Set conn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
'Åbner en forbindelse til databasen
Conn.open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("database.mdb")

'Åbner et recordset med en SQL sætning
rs.Open "select * from login WHERE (closed = True) AND (remote_host = '" & remote_host & "')", conn, adOpenKeyset, adLockOptimistic

set Session("rs") = rs
If not rs.EOF Then
    DO 
    ' Her checkes der efter IP
        if remote_host = rs.fields("remote_host") then
            user = "ikke_ok"
            session("remote_host") = remote_host
        End If
        rs.MoveNext
    Loop Until user = "ikke_ok" OR aa.EOF
    rs.close
    Response.Clear
    Response.Redirect("luk.asp")
    Response.End
End If

If not user = "ikke_ok" Then
%>
  <%   
    If Session("taeller") > 2 Then
        rs.AddNew
        rs("Username") = brugernavn
        rs("password") = password
        rs("dateandtime") = now()
        rs("closed") = true
        rs("remote_host") = request.ServerVariables("REMOTE_HOST")
        rs.update
        rs.close
        response.write("Access to the system are now closed ")
        Session("godkendt")=""
    else   
        rs.AddNew
        rs("username") = brugernavn
        rs("password") = password
        rs("dateandtime") = now()
        rs("closed") = false
        rs("remote_host") = request.ServerVariables("REMOTE_HOST")
        rs.update
        rs.close
        Session("taeller")= Cint(Session("taeller")) + 1
        set rs = Server.CreateObject("ADODB.Recordset")
        rs.open "select * from persons WHERE (username = '"& CStr( brugernavn ) &"') AND (password = '"& CStr( password ) &"')" ', "DSN=check_brugernavn"
        set Session("rs") = rs
       
        if rs.EOF Then
            Session("godkendt")="ikkegodkendt"
            response.write ("You have tried to access:<B> ")
            response.write(cstr(Session("taeller")) + ". time</B></DIV> ")
            rs.close
            indform
        else
            Session("userlevel") = rs.Fields("userlevel")
            Session("Username") = rs.Fields("username")
            rs.close
            Session("godkendt")="godkendt"
            Session("taeller")= 0
                Response.Clear
                Response.Redirect("frameset.asp")
                Response.End
        End If
    End if   
End if
End if
%>
Avatar billede snipermode Nybegynder
09. september 2003 - 10:00 #10
Hej Eagleeye

har prøvet ...får nu fejlen

"The connection cannot be used to perform this operation. It is either closed or invalid in this context"
Avatar billede snipermode Nybegynder
19. oktober 2003 - 08:53 #11
Hmm... jeg lukker denne tråd...
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