Avatar billede ravnkilde Nybegynder
26. juni 2002 - 16:55 Der er 5 kommentarer og
1 løsning

Object required fejl

I nedenstående kode får jeg flg. fejlmeddelelse:

Microsoft VBScript runtime error '800a01a8'

Object required: ''

/beta/login/New-soren.asp, line 18

Jeg er ligesom gået i stå her. Hjælp!

M.v.h.
Chr.



Min kode:

<%
'Dimension the variables
Dim Randchar, password, StrLen

'Define the length of the passwordword password
StrLen=5

'Forbindelsen til databasen
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.Mappath("../../../db/college.mdb")

call pass

'SQL forespørgsel
strSQL = "select User_ID from STUDENTS where User_ID = '" & password & "'"
set objRec = objConn.Execute(strSQL)



'Generate the password
do until objRec.EOF
    call pass
    set objRec = objConn.Execute(strSQL)
loop

objRec.close
Set objRec = Nothing
Conn.Close
Set Conn = Nothing

Response.Write password

sub pass

DO UNTIL Len(password)=StrLen
Randomize
Randchar = Int(Rnd*122)+1
IF (Randchar>64 AND Randchar<91) OR (Randchar>96 AND Randchar<123) OR (Randchar>47 AND Randchar<58) THEN
password=password & chr(Randchar)
END IF    
loop

end sub
%>
Avatar billede eagleeye Praktikant
26. juni 2002 - 17:28 #1
du kalder din connection for conn:
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.Mappath("../../../db/college.mdb")

og du bruger et connection object nogle steder i koden som hedder objConn:
set objRec = objConn.Execute(strSQL)


Enten ændre Conn til objConn alle steder
eller ændre objConn til Conn alle steder.
Avatar billede ravnkilde Nybegynder
26. juni 2002 - 17:41 #2
Har rettet til Conn alle steder, men nu fås denne fejl:

Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.

/beta/login/New.asp, line 16

Ny kode:
<%
'Dimension the variables
Dim Randchar, password, StrLen, objRec

'Define the length of the passwordword password
StrLen=5

'Forbindelsen til databasen
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.Mappath("../../../db/college.mdb")

call pass

'SQL forespørgsel
strSQL = "select User_ID from STUDENTS where User_ID = '" & password & "'"
set objRec = Conn.Execute(strSQL)

'Generate the password
do until objRec.EOF
    call pass
    set objRec = Conn.Execute(strSQL)
loop

objRec.close
Set objRec = Nothing
Conn.Close
Set Conn = Nothing

Response.Write password

sub pass

DO UNTIL Len(password)=StrLen
Randomize
Randchar = Int(Rnd*122)+1
IF (Randchar>64 AND Randchar<91) OR (Randchar>96 AND Randchar<123) OR (Randchar>47 AND Randchar<58) THEN
password=password & chr(Randchar)
END IF    
loop

end sub
%>
Avatar billede eagleeye Praktikant
26. juni 2002 - 17:44 #3
Fejlen kommer hvis du prøve at sammeligne Tal med Tekst: Eksvis hvis User_ID er defineret som tal skal du i SQL ikke havde ' omkring.

strSQL = "select User_ID from STUDENTS where User_ID = " & password & ""
Avatar billede ravnkilde Nybegynder
26. juni 2002 - 17:51 #4
Hej eagleeye!

Vi kommer da fremad!

Har rettet SQL-sætningen. Nu fås:

Microsoft OLE DB Provider for ODBC Drivers error '80040e10'

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

/beta/login/New.asp, line 16
Avatar billede eagleeye Praktikant
26. juni 2002 - 17:57 #5
så det nook fordi password er tom den bruger du til at sammenligne med User_ID. Er det rigtigt User_ID = password ??

Du kalder en function pass som jeg ikke lige kan se?
Avatar billede ravnkilde Nybegynder
27. juni 2002 - 18:25 #6
Hej eagleeye!

Jeg har løst det med denne reviderede kode:

Du får alle pts for din indsats.

/ Chr.

<%
'Dimension the variables
Dim Randchar, password, StrLen

'Define the length of the passwordword password
StrLen=5

'Forbindelsen til databasen
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.Mappath("../../../db/college.mdb")

password = "temp"
call pass

'SQL forespørgsel
strSQL = "select User_ID from STUDENTS where Password = '" & password & "'"
Set objRec = Conn.Execute(strSQL)



'Generate the password
do until objRec.EOF
    call pass
    strSQL = "select User_ID from STUDENTS where Password = '" & password & "'"
    set objRec = Conn.Execute(strSQL)
loop

objRec.close
Set objRec = Nothing
Conn.Close
Set Conn = Nothing

Response.Write password

sub pass
password = ""
DO UNTIL Len(password)=StrLen
Randomize
Randchar = Int(Rnd*122)+1
IF (Randchar>64 AND Randchar<91) OR (Randchar>96 AND Randchar<123) OR (Randchar>47 AND Randchar<58) THEN
password=password & chr(Randchar)
END IF    
loop

end sub
%>
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