Avatar billede steen_hansen Forsker
04. maj 2002 - 17:38 Der er 22 kommentarer og
1 løsning

Hvorfor fejl, når det andet er rigitgt?

Jeg har en debatemne.asp:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
dbConn = "SERVER=Local;DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/fpdb/include.mdb")
Conn.open dbConn

'Hent debatemne

SQL = "SELECT * FROM debat WHERE emneID = " & Request.QueryString("emneID")
Set RS = Conn.Execute (SQL)

If RS.EOF Then
    Response.Write "Debatemnet blev ikke fundet!"
    Conn.Close
    Response.End
End If

Det virker perfekt. Jeg vil så lave en anden kategori og genbruger koden i /btrieve/default.asp:

Set Conn = Server.CreateObject("ADODB.Connection")
dbConn = "SERVER=Local;DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/fpdb/btrieve.mdb")
Conn.open dbConn

'Hent debatemne

SQL = "SELECT * FROM btrievecodes WHERE emneID = " & Request.QueryString("emneID")
Set RS = Conn.Execute (SQL)

If RS.EOF Then
    Response.Write "Debatemnet blev ikke fundet!"
    Conn.Close
    Response.End
End If


Men det udløser denne fejlmeddelelse:

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

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'emneID ='.

/btrieve/default.asp, line 93


Hvorfor det? Koderne er da ens?
Avatar billede esoulman Nybegynder
04. maj 2002 - 17:40 #1
SQL = "SELECT * FROM btrievecodes WHERE emneID='" & Request.QueryString("emneID") & "'"  ???
Avatar billede steen_hansen Forsker
04. maj 2002 - 17:41 #2
Linie 93:  SQL = "SELECT * FROM btrievecodes WHERE emneID = " & Request.QueryString("emneID")
Set RS = Conn.Execute (SQL)

Den eneste forskel på de linien i de to dokumenter er, at i debatemne.asp hedder tabellen debat, og i default.asp hedder den btrievecodes. Jeg kan ikke se, at der skulle være forskel?
Avatar billede gryn Nybegynder
04. maj 2002 - 17:41 #3
Er querystrengen emneID et tal eller...?
Avatar billede -mundi- Nybegynder
04. maj 2002 - 17:41 #4
Der er ikke nogen værdi i Request.QueryString("emneID"), derfor får du den fejl
Avatar billede steen_hansen Forsker
04. maj 2002 - 17:41 #5
Hvad går dit spørgsmål ud på?
Avatar billede gryn Nybegynder
04. maj 2002 - 17:42 #6
Stien tal databaserne er ikke ens!?
Avatar billede gryn Nybegynder
04. maj 2002 - 17:42 #7
tal = til
Avatar billede md_craig Nybegynder
04. maj 2002 - 17:43 #8
der er tale om 2 forskællig ASP dokumenter ikk sandt ???
Avatar billede steen_hansen Forsker
04. maj 2002 - 17:43 #9
-mundi- forklar dig :o)
Avatar billede -mundi- Nybegynder
04. maj 2002 - 17:43 #10
Der er ikke så meget at snakke om, den fejl betyder at der ikke er angiver nogen væredi til "emneid" og derfor må Request.QueryString("emneID")  være tom !
Avatar billede steen_hansen Forsker
04. maj 2002 - 17:44 #11
Jo, to forskellige: debatemne.asp og default.asp
Avatar billede steen_hansen Forsker
04. maj 2002 - 17:44 #12
-mundi-: Hvorfor er den tom i det ene, men ikke i det andet?
Avatar billede steen_hansen Forsker
04. maj 2002 - 17:46 #13
Jeg har kopieret debatemne.asp ind i mappen btrieve og rettet stiangiveser ognavne til. Og selvfølgelig oprettet en ny database, der hedder btrieve med tabellen btrievecodes.
Avatar billede gryn Nybegynder
04. maj 2002 - 17:46 #14
I din adresse skal der være angivet en querystringvaribel.

eks:

btrivecodes.asp?emneID=2
Avatar billede steen_hansen Forsker
04. maj 2002 - 17:46 #15
Jeg har kopieret debatemne.asp ind i mappen btrieve og omdøbt den til default.asp
Avatar billede steen_hansen Forsker
04. maj 2002 - 17:47 #16
S'føli! Det har jeg til debatemne.asp, men den har jeg ikke fået med til default.asp. Det vil jeg lige kigge på.
Avatar billede md_craig Nybegynder
04. maj 2002 - 17:48 #17
så er der lige en anden ting jag skal have på plads...

hvorfor bruge 2 databaser, og hvorfor bruge EmneID mod dem begge.. du kunne evt. prøve at udskifte den ene emneID med EmneID2

og hvad kunne et emne Id fx være ??? er det et tal fx 1 eller en streng fx ASP
Avatar billede steen_hansen Forsker
04. maj 2002 - 19:44 #18
Nu har jeg sat det således op:

                  <table border="0" cellpadding="4" cellspacing="0" width="100%" class="tekst11">
                    <tr>
                      <td valign="top"><img border="0" src="/images/pil.gif"></td>
                      <td width="100%" valign="top">
<%
Set Conn = Server.CreateObject("ADODB.Connection")
dbConn = "SERVER=Local;DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/fpdb/btrieve.mdb")
Conn.open dbConn

SQL = "SELECT * FROM btrievecodes WHERE post_parent = 0 ORDER BY emneID DESC"

response.write "<a href=""/btrieve/default.asp?emneID=" & rs("emneID") & """>" & "Btrievecodes" & "</a>"

RS.Close
Set RS = nothing
Conn.Close
Set Conn = nothing
%>
                      </td>
                    </tr>
                  </table>

Men det giver flg. fejl:

ADODB.Recordset error '800a0cc1'

Item cannot be found in the collection corresponding to the requested name or ordinal.

/includes/menu.asp, line 149

menu.asp linie 149:

response.write "<a href=""/btrieve/default.asp?emneID=" & rs("emneID") & """>" & "Btrievecodes" & "</a>"
Avatar billede steen_hansen Forsker
04. maj 2002 - 19:53 #19
md_craiq: Det skal kun til at vise en kamerat nogle bestemte ting. Vil ikke blande de 2 databaser sammen.
Avatar billede -mundi- Nybegynder
04. maj 2002 - 21:06 #20
Den fejl der er i linie 149 er fordi den ikke kan finde emneID i dit recordset (rs)
Avatar billede steen_hansen Forsker
04. maj 2002 - 21:42 #21
Hm? emneID er i databasen?
Avatar billede steen_hansen Forsker
04. maj 2002 - 21:42 #22
Jeg har lagt det første indlæg ind. Den starter med nr. 1.
Avatar billede md_craig Nybegynder
05. maj 2002 - 00:44 #23
du kan evt. omskrive din SQL lidt...
fra...
SQL = "SELECT * FROM btrievecodes WHERE post_parent = 0 ORDER BY emneID DESC"

til...

SQL = "SELECT btrievecodes.EmneID, btrievecodes."næste kolone" btrievecodes."3. kolone" From btrievecodes WHERE post_parent = 0 ORDER BY EmneID DESC;"

Men hvad er: Post_Parent ?
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