Avatar billede cotus Nybegynder
19. oktober 2002 - 15:29 Der er 10 kommentarer og
1 løsning

Fejl i søgemaskine

<% Response.Buffer = True %>
<html><head>
<title>Soegeresultat</title>
</head><body>

<%
strType = Trim(Request.Form("Type"))
strAarstal = Trim(Request.Form("Aarstal"))
strNummer = Trim(Request.Form("Nummer"))

If Len(strType) = 0 Then
    Response.Clear
    Response.write "Indtast venligst en udgivelse"
Else
    ' Hvis der er skrevet i feltet
    strType = Replace(strType,"'","''")
End If

If Len(strAarstal) <> 0 Then
    strAarstal = Replace(strAarstal,"'","''")
End If

If Len(strNummer) = 0 OR Len(strNummer) <> "0" Then
    ' Hvis der er skrevet i feltet
    strNummer = Replace(strNummer,"'","''")
End If

If strType = "AS" OR strType = "AA" OR strType = "AE" OR strType = "BB" OR strType = "EH" OR strType = "GP" OR strType = "MH" OR strType = "OJ" Then
    strSQL = "SELECT Type, Aarstal, Nummer FROM udgivelser WHERE"
    strSQL = strSQL & " (Type LIKE '%" & strType & "%')"
    strSQL = strSQL & " AND (Aarstal LIKE '%" & strAarstal & "%')"
    strSQL = strSQL & " AND (Nummer LIKE '%" & strNummer & "%')"
Elseif strType = "GH" OR strType = "HIA" OR strType = "JX" OR strType = "JB" OR strType = "MG" OR strType = "SE" Then
    strSQL = "SELECT Type, Nummer FROM udgivelser WHERE"
    strSQL = strSQL & " (Type LIKE '%" & strType & "%')"
    strSQL = strSQL & " AND (Nummer LIKE '%" & strNummer & "%')"
End if


' Skaber DSNLess forbindelse til DBen
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("database.mdb")
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open strDSN

' Skaber et recordset udfra SQL strengen
Set rs = myConn.Execute(strSQL)
If Not (rs.BOF Or rs.EOF) Then
    ' Hvis der er fundet poster på søgningen
    Response.Write "<p>Søgeresultat</p>"
    Response.Write "<table border=1>"
    Response.Write "<tr><td>Id</td><td>Type</td><td>Aarstal</td><td>Nummer</td><td>Bibliotek</td></tr>"
    Do While Not rs.EOF
        Response.Write "<tr><td>" & rs("id") & "</td>"
        Response.Write "<td>" & rs("type") & "</td>"
        Response.Write "<td>" & rs("aarstal") & "</td>"
        Response.Write "<td>" & rs("nummer") & "</td>"
        Response.Write "<td>" & rs("bibliotek") & "</td></tr>"
        rs.MoveNext
    Loop
    Response.Write "</table>"
Else
    ' Hvis der ikke er fundet poster på søgningen
    Response.Write "<p>Der er ikke fundet noget på denne søgning</p>"
End If

' Rydder op efter os
myConn.Close
Set myConn = Nothing
%>

</body></html>


Når jeg søger med flg. kriterier:
AA  2002  42

, får jeg flg. fejl:

Error Type:
ADODB.Recordset (0x800A0CC1)
Item cannot be found in the collection corresponding to the requested name or ordinal.
/raplioteket/check.asp, line 53


Browser Type:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

Page:
POST 30 bytes to /raplioteket/check.asp

POST Data:
type=AA&aarstal=2002&nummer=42

Time:
Saturday, October 19, 2002, 3:27:14 PM


More information:
Microsoft Support

Hvad er fejlen?

    52'  Do While Not rs.EOF
    53'  Response.Write "<tr><td>" & rs("id") & "</td>"
    54'  Response.Write "<td>" & rs("type") & "</td>"

Please help...

/cotus
Avatar billede keysersoze Ekspert
19. oktober 2002 - 15:35 #1
i din sql udvælger du følgende;

strSQL = "SELECT Type, Aarstal, Nummer FROM udgivelser WHERE"

og alligevel forsøger du at udskrive ID - så du er nødt til at udvælge id også så din sql skal være;

strSQL = "SELECT id, Type, Aarstal, Nummer FROM udgivelser WHERE"
Avatar billede cotus Nybegynder
19. oktober 2002 - 16:02 #2
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key 'Temporary (volatile) Jet DSN for process 0xc7c Thread 0xdc8 DBC 0x2bc17c Jet'.
/raplioteket/check.asp, line 43


Browser Type:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

Page:
POST 30 bytes to /raplioteket/check.asp

POST Data:
type=AA&aarstal=2002&nummer=42

Time:
Saturday, October 19, 2002, 4:03:26 PM


More information:
Microsoft Support

42' Set myConn = Server.CreateObject("ADODB.Connection")
43' myConn.Open strDSN
Avatar billede keysersoze Ekspert
19. oktober 2002 - 16:21 #3
prøv at gå tilbage til det du havde før men bare udkommenter linie 53 - altså sådan;

'Response.Write "<tr><td>" & rs("id") & "</td>"

du har en post i databasen der hedder id?
Avatar billede cotus Nybegynder
19. oktober 2002 - 16:35 #4
Nu bruger jeg koden, som jeg viste ovenfor, men med 53 fjernet...

Når jeg så søger på aa200242, får jeg flg. fejl:

Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E0C)
Command text was not set for the command object.
/raplioteket/check.asp, line 46


Browser Type:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

Page:
POST 30 bytes to /raplioteket/check.asp

POST Data:
type=aa&aarstal=2002&nummer=42

Time:
Saturday, October 19, 2002, 4:37:49 PM


More information:
Microsoft Support
Avatar billede keysersoze Ekspert
19. oktober 2002 - 17:00 #5
det kunne se ud som om det var sqlen der er et - er alle felter tekst/notat felter?

proev evt med en noget mere simpel sql - fx bare;

strSQL = "SELECT Type, Aarstal, Nummer FROM udgivelser"
Avatar billede cotus Nybegynder
19. oktober 2002 - 17:02 #6
Alle felterne er notat'er undtagen 'id' som er autonummereret...

/cotus
Avatar billede cotus Nybegynder
19. oktober 2002 - 17:05 #7
http://www.donaldisten.dk/personlig/soegemaskine.zip - du kan evt. kigge på filerne, samt databasen her!

/cotus
Avatar billede keysersoze Ekspert
19. oktober 2002 - 18:47 #8
ok... fejlen kommer fordi der simpelthen slet ikke ER en sql! Du har en if-sætning hvor der SKAL være opfyldt et kritere før der søges, og så du har sat det op kender det forskel på "aa" og "AA" - og det virker altså kun med "AA"!

samtidig mangler du i i hvert fald din første sql at få tilføjet både id og bibliotek til din sql;

strSQL = "SELECT id, Type, Aarstal, Nummer, bibliotek FROM udgivelser WHERE"
Avatar billede cotus Nybegynder
19. oktober 2002 - 18:56 #9
MANGE tak for hjælpen, Kim... :)

/cotus
Avatar billede keysersoze Ekspert
19. oktober 2002 - 19:12 #10
nånå - er vi nu på fornavn :)
Avatar billede cotus Nybegynder
19. oktober 2002 - 20:10 #11
;o)
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