webForumDet fria alternativet

SQL och ASP problem ?

8 svar · 257 visningar · startad av Pellefant

PellefantMedlem sedan maj 20023 372 inlägg
#1

Hej!

Kört fast, har klurat med denna senaste timmen. :l

Oavsett vad Categori är, så blir id 11, 11 är också den första(översta och lägsta) postens id.

ASP, Access

<%Category=request.form("category")%>

<%
Set Databas = Server.CreateObject("ADODB.Connection")
Databas.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("phone_numbers.mdb")
Set RecSet = Server.CreateObject("ADODB.Recordset")
SQL="SELECT * FROM categories Where category = Category"
RecSet.Open SQL, Databas, 3, 3 %>
<p>
<%id=Recset("id")%>
<p>
<%RecSet.Close 
Databas.Close %>
SebbeMedlem sedan jan. 20032 285 inlägg
#2
SQL="SELECT * FROM categories Where category = " & Category

???

PellefantMedlem sedan maj 20023 372 inlägg
#3

Hej!

Det hjälpte tyvärr inte:

SQL="SELECT * FROM categories Where category = " & Category

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

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

Testade även:

SQL="SELECT * FROM categories Where category = " & "'Category'"

Felmed:
Subcategory
ADODB.Field error '800a0bcd'

Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record

PoffeMedlem sedan apr. 20022 743 inlägg
#4
SQL="SELECT * FROM categories Where category = '" & Category & "'"
ObbelixMedlem sedan okt. 2002257 inlägg
#5

Testa med

SQL="SELECT * FROM categories Where category = '" & Category & "'"

/red
ahh.. lite för långsam...

cyprysMedlem sedan dec. 20003 563 inlägg
#6

Det finns ingen post där category = "din variabel category".
Kör detta istället

<%Category=request.form("category")%>

<%
Set Databas = Server.CreateObject("ADODB.Connection")
Databas.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("phone_numbers.mdb")
Set RecSet = Server.CreateObject("ADODB.Recordset")
SQL="SELECT * FROM categories Where category = " & Category
RecSet.Open SQL, Databas, 3, 3 

Do until RecSet.eof%>
<p>
<%id=Recset("id")%>
<p>
<%
RecSet.Movenext
Loop
RecSet.Close 
Databas.Close %>

r: Är fältet av typen text så stämmer överstående SQL-sats istället.

SebbeMedlem sedan jan. 20032 285 inlägg
#7

Om det cyprys skrev inte funkar kan du testa med

<%Category=request.form("category")%>

<%
Set Databas = Server.CreateObject("ADODB.Connection")
Databas.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("phone_numbers.mdb")
Set RecSet = Server.CreateObject("ADODB.Recordset")
SQL="SELECT * FROM categories Where category = '" & Category & "'"
RecSet.Open SQL, Databas, 3, 3 
If RecSet.EOF = True Then
Response.Write("Inga poster")
Else
Do Until RecSet.EOF
%>
<p>
<%
id=Recset("id")
RecSet.MoveNext
Loop
End If
RecSet.Close 
Databas.Close %>
PellefantMedlem sedan maj 20023 372 inlägg
#8

Det gick bra med det sistnämnda förslaget.

Tack så hemskt mycket.

JosefMedlem sedan mars 20023 561 inlägg
#9

Sedan kan man ju med fördel hoppa över alla <% och %>. Använd Response.Write("blabl") istället för att hoppa hela tiden.
T ex:

...
Do until RecSet.EOF
          Response.Write("<p>")
          id = RecSet("id")
...

Man kan ju även byta ut

Databas.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("phone_numbers.mdb")

till

Databas.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("phone_numbers.mdb")
130 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)