webForumDet fria alternativet

Behöver ny hjälp

ASP

12 svar · 235 visningar · startad av LordJens

Medlem sedan aug. 2000119 inlägg
Frågan#1

Jag har frågat om det här en gång tidigare, men jag får det inte att fungera, nya problem uppstår bara.

   Set RecSet = Server.CreateObject("ADODB.Recordset")
   SokRes = "SELECT * FROM links WHERE namn LIKE '%"& Request.Form("sok") &"%' OR beskrivning LIKE '%"& Request.Form("sok") &"%' ORDER BY real_kat"
   RecSet.Open SokRes, Connect

   If RecSet.EOF Then %>

Hittade inga länkar.

<% Else %>

<B>SÖKRESULTAT</B><BR>
Sökord: <B><%=Request.Form("sok")%></B><P>

<% Do Until RecSet.EOF 

   Current_kat = RecSet("kategori")
%>

<B><%=RecSet("real_kat")%></B><BR>

<% Do While RecSet("kategori") = Current_kat %>

<%=RecSet("namn")%><BR>
<%=RecSet("url")%><BR>
<I><%=RecSet("beskrivning")%></I><P>

<% RecSet.MoveNext   
   Loop
   Loop
   RecSet.Close
   End If

   ElseIf Request.Form("kat_search") = "true" Then
   Set RecSet = Server.CreateObject("ADODB.Recordset")

   Visa = "SELECT * FROM links WHERE kategori = '" & Request.Form("kategorival") & "' ORDER BY kategori"
   RecSet.Open Visa, Connect 
%>

<b><%=RecSet("real_kat")%></b><BR>

<% Do Until RecSet.EOF %>
url: <%=RecSet("url")%><BR>
<I>"<%=RecSet("beskrivning")%>"</I><P>

<% RecSet.MoveNext
   Loop

   RecSet.Close

...är en sökmaskin, som fungerar nästan. Den ger de rätta resultaten, men i slutet får jag det irriterande felmeddelandet:

fel '80020009' 
Undantag inträffade. 
/kdrc/linktest.asp, rad 62

------------------
.:: Jens has spoken ::.

Medlem sedan juli 20003 825 inlägg
#2

Kolla på rad 62 och om den ser okej ut, kolla raden ovanför.

------------------
OLR WebAdmin

Medlem sedan aug. 2000119 inlägg
#3
Current_kat = RecSet("kategori")

...är rad 62.

------------------
.:: Jens has spoken ::.

Medlem sedan dec. 200012 464 inlägg
#4

Vilken datatyp har kolumnen kategori?

Du kan ha råkat ut för problemet med pm/memo (eller text om du inte använder Access) datatypen.

Om man har en kolumn med en sådan datatyp så kan man inte ha flera referenser till det fältet i recordsetet. Du kan ju testa att skriva så här i stället:

<% Do Until RecSet.EOF 

Current_kat = RecSet("kategori")
%>

<B><%=RecSet("real_kat")%></B><BR>

newKat = current_kat
<% Do While newKat = Current_kat %>

<%=RecSet("namn")%><BR>
<%=RecSet("namn")%><BR>
<%=RecSet("url")%><BR>
<I><%=RecSet("beskrivning")%></I><P>

<% RecSet.MoveNext 
if RecSet.eof then exit do
newKat = RecSet("kategori")

------------------
essentitia preter non sans multiplicandum

[Redigerat av LarsG den 01 aug 2001]

Medlem sedan aug. 2000119 inlägg
#5

Jag fälten är av typen Text och jag använder Access, så det bör väl inte vara nåt problem.

------------------
.:: Jens has spoken ::.

Medlem sedan juli 20003 825 inlägg
#6

Defaultinställningen för fältet 'text' är 50 tecken. Välj mer om så behövs. Dessutom måste man markera valet 'tillåt noll-längd' om man vill att fältet ska kunna vara tomt.

------------------
OLR WebAdmin

Medlem sedan aug. 2000119 inlägg
#7

Nu har jag ändrat allt så att det skall tillåta nollläge, men det funkar ändå inte :(.

------------------
.:: Jens has spoken ::.

Medlem sedan dec. 19996 721 inlägg
#8

Testa det som LarsG skrev.

Fältlängd och "nolltillåtelse" är inte intressant här, eftersom du bara plockar ut värden.

[Redigerat av emission den 01 aug 2001]

Medlem sedan juli 20011 129 inlägg
#9

Jag gillar inte det där att du har 2 loopar när det inte behövs...

Nu drar jag bara ett liknande ur skallen,, men du listar nog ut likheten.

Curr_Kat = ""
Do While Not RS.EOF
If RS("Kategori") <> Curr_Kat Then
Response.Write "<b>" & RS("Kategori") & "</b>"
End If

Response.Write RS("Namn") & ", " & RS("URL") & ", " & RS("Beskr")

Curr_Kat = RS("Kategori")
RS.MoveNext
Loop

Är jag helt ute och seglar...
Dålig läsare på massor med kod...
Blir så trött... :)
Sorry! :e

------------------
Den röda webkodarmasken är lös... Ahhrghhh

Medlem sedan aug. 2000119 inlägg
#10

Till emission och LarsG:
Jag testade koden. Jag måste först komplettera den med lite Loop:ar, som du glömt. Din kod ger tyvärr samma resultat.

Till Koplik:
Jag är inte helt 100 på det, men jag tror nog att jag behöver två loopar. Det skall alltså lista så att först kommer en rubrik och sedan de poster som hör till rubriken.
Den första loopen drar genom rubrikerna, den andra de underliggande posterna.

------------------
.:: Jens has spoken ::.

Medlem sedan juli 20011 129 inlägg
#11

Kära LordJens.
Jag antar att Kategorirubrikerna ligger i samma recordset (efter kollat i koden så såg jag det) och då antar jag att Kategorirubrikerna finns med i varje post... Alltså så räcker det med att köra en loop som jag demonstrerade tidigare.
Jag använder ju en variant som innehåller föregående post's Kategorirubrik... och om den inte matchar mot nästa posts katrub så skriver den ut det, då är det ju en ny.
Och efter varje katrub så skriver den ju ut de underliggande posterna, utan katrub.

Men det är ju kanske inte så nog med att du måste ha 2 nästlade loopar, men jag tycker det är obehagligt när man måste använda sig av det och undviker det helst... men ibland så går det ju inte...

Lycka till med problemet iaf. :)

------------------
Den röda webkodarmasken är lös... Ahhrghhh

Medlem sedan aug. 2000119 inlägg
#12

TUSEN TACK till alla som hjälpte, speciellt till Koplik. Nu fungerar det fint, tror jag i alla fall ;).

------------------
.:: Jens has spoken ::.

Medlem sedan juli 20011 129 inlägg
#13

Anytime!

------------------
Jag har en vit hund, eller är det en isbjörn?

592 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
452 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
452 ms — ändringar (db)