Avatar billede inctor Nybegynder
30. april 2006 - 22:26 Der er 13 kommentarer og
1 løsning

error '80020009'

HeeJ, Jeg er ikk lige den største haj til asp .. Kender faktisk ikk meget til det overhovedet, men på en af mine sider melder den denne fejl:

error '80020009'
/www/crew/crew.asp,
line 174

Hvad betyder det ? linie 174:


Response.Write "<a href=index.asp?id=" & rs("id") & ">" & rs("hhnavn") & "</a><br>"

HVad er fejlen ?
Avatar billede inctor Nybegynder
30. april 2006 - 22:27 #1
og på en anden side kommer denne melding:
Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

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

/www/forum/forum.asp, line 550


?
Avatar billede thesurfer Nybegynder
30. april 2006 - 22:31 #2
Fejlen "Data type mismatch in criteria expression" betyder at der er fejl i din SQL sætning.

Typisk opstår fejlen, hvis du prøver på at sammenligne et tal med et bogstav.

Hvordan ser din SQL sætning ud?

/theSurfer
Avatar billede inctor Nybegynder
30. april 2006 - 22:34 #3
øhm ? på linie 550 står der:

Conn.Execute(strSQL)


og det må være det her den "executor" :


strSQL = "Insert into forum ("

strSQL = strSQL & "navn, "
strSQL = strSQL & "besked, "
strSQL = strSQL & "dato, "
strSQL = strSQL & "ip) "

strSQL = strSQL & "values( "

strSQL = strSQL & "'" & Server.HTMLEncode(strNavn) & "', "
strSQL = strSQL & "'" & Server.HTMLEncode(strSI) & "', "
strSQL = strSQL & "'" & strLigeNu & "', "
strSQL = strSQL & "'" & Request.ServerVariables("Remote_Host") & "')"
Avatar billede thesurfer Nybegynder
30. april 2006 - 22:50 #4
Fejlen opstår sikkert pga "dato" og linien: strSQL = strSQL & "'" & strLigeNu & "', "
Prøv med denne linie i stedet: strSQL = strSQL & "#" & strLigeNu & "#, "

2) Hvad er typerne af disse felter i databasen:
navn
besked
dato
ip

3) Hvad er værdien af disse variabler:
Server.HTMLEncode(strNavn)
Server.HTMLEncode(strSI)
strLigeNu
Request.ServerVariables("Remote_Host")

/theSurfer
Avatar billede eagleeye Praktikant
30. april 2006 - 23:11 #5
Du skriver:  strLigeNu
Så kan du bruge dataabsen indbygge dato funktion. Så denne:

strSQL = strSQL & "'" & strLigeNu & "', "


Bliver til denne evt brug Now() hvis du også vil havde klokkeslæt på:

strSQL = strSQL & "Date(), "
Avatar billede inctor Nybegynder
01. maj 2006 - 11:07 #6
Neej stadig samme fejl .. Jeg har ikk adgang til databasen .. ikke endnu .. er ny ansat på en hjemmeside og har kun fået hjemmeside login og ftp login ..
Avatar billede inctor Nybegynder
16. maj 2006 - 09:08 #7
Nu har jeg fået adgang til databasen, det er en MDB database, så skulle lige finde min Office CD.. :) heeh, stadig mit oprindelige spm:

Hvis i stadig læser herinde så ville jeg gerne ha en løsning på følgende problem, som nu var mit oprindelige spm ..
error '80020009' er fejlen, linien den siger der er fejl på er:

Response.Write "<a href=index.asp?id=" & rs("id") & "&navn=" & rs("hhnavn") & "</a><br>"

Jeg kan ikk se nogen fejl ? men jeg er så oSs newb til ASP.. :)
Avatar billede inctor Nybegynder
16. maj 2006 - 09:18 #8
her er hele den tekst den laver fejl i værdien af strSI er beskeden man indtasterm og strNavn er ens navn man indtaster, som i kan se i følgende kode:


Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("../../database/forum.mdb")
Conn.Open DSN

If len(Request.Form("besked")) > 300 Then
Response.Write "<b>OBS: Din besked må højest fylde 300 tegn.</b>"
ElseIf Request.Form("navn") = "" Then
Response.Write "<b>OBS: Du mangler at skrive dit navn.</b>"
ElseIf Request.Form("besked") = "" Then
Response.Write "<b>OBS: Du mangler at skrive beskeden.</b>"
Else

If len(Request.Form("besked")) > 33 AND InStr(1, Request.Form("besked"), " ", 1) = 0 then
strSI = left(Request.Form("besked"),33)
Else
strSI = Request.Form("besked")
End If

strSI = Request.Form("besked")
strSI = Replace(strSI, "'", "''")

strNavn = Request.Form("navn")
strNavn = Replace(strNavn, "'", "''")

strSQL = "Insert into forum ("

strSQL = strSQL & "navn, "
strSQL = strSQL & "besked, "
strSQL = strSQL & "dato, "
strSQL = strSQL & "ip) "

strSQL = strSQL & "values( "

strSQL = strSQL & "'" & Server.HTMLEncode(strNavn) & "', "
strSQL = strSQL & "'" & Server.HTMLEncode(strSI) & "', "
strSQL = strSQL & "'" & strLigeNu & "',"
strSQL = strSQL & "'" & Request.ServerVariables("Remote_Host") & "')"


Session("skriv") = Request.Form("navn")
Session.Timeout = 50

Session("log") = ""
Session.Timeout = 50

Conn.Execute(strSQL)

Response.Redirect "forum.asp?side=showall"

End If
Avatar billede eagleeye Praktikant
16. maj 2006 - 20:49 #9
Umiddelbart kan det så vidt jeg kan se være to forskellige ting, første ting tjek at de kolonne navne du udskriver findes i tabellen, eksempelvis udskriver du fra en kolonne som hedder:  hhnavn  er det rigtigt? I det kode du insætter hedder kolonnen navn, det muligt det bare et to forskelige?


Response.Write "<a href=index.asp?id=" & rs("id") & "&navn=" & rs("hhnavn") & "</a><br>"




Den anden ting er at rs er tom. Så prøv at tjkeke for det:

if not rs.EOF then
  Response.Write "<a href=index.asp?id=" & rs("id") & "&navn=" & rs("hhnavn") & "</a><br>"
end if
Avatar billede inctor Nybegynder
17. maj 2006 - 08:27 #10
den hedder vidst hhnavn. sidder på skolen. så jeg kan ikk tjekke det nu, mn jeg prøver det så snart jeg kommer hjem. Er nemlig ikke helt sikker, mener den hedder hhnavn begge steder .. :S
Avatar billede inctor Nybegynder
17. maj 2006 - 15:19 #11
Fik programmeret et nyt et .. :) heeh .. Det var meget indviklet kodet .. Hvorn kan jeg videre sende til en anden side med nogen værdier ? ex: http://www.side.dk/test.php?overskrift=" & Server.HTMLEncode(strOver) & "&forfatter=" & Server.HTMLEncode(Request.Form("forfatter")) & "

Den kan kun finde overskrift værdien hvis jeg ikk laver nogen mellemrum i overskriften, og det jo ikk så smart, hvorn kan jeg få den til at virke så jeg godt kan bruge mellemrum i overskriften og at den hente begge værdier ? :S
Avatar billede inctor Nybegynder
17. maj 2006 - 15:21 #12
her erstatter den noget med noget ? men hvad ?


strOver = Request.Form("overskrift")
strOver = Replace(strOver, "'", "''")

strArtikel = Request.Form("artikel")
strArtikel = Replace(strArtikel, "'", "''")

kan jeg få den til at erstatte ' ' med &nbsp; ?
Avatar billede eagleeye Praktikant
17. maj 2006 - 18:09 #13
ja du kan tilføje flere replace's efter hinanden:

strOver = Request.Form("overskrift")
strOver = Replace(strOver, "'", "''")
strOver = Replace(strOver, " ", "&nbsp;")
Avatar billede inctor Nybegynder
19. juni 2006 - 15:35 #14
-
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