webForumDet fria alternativet

Paging strul när sökningen retunerar NULL

ASP

6 svar · 206 visningar · startad av SteveP

Medlem sedan mars 2003772 inlägg
Frågan#1

Halloj,

Jag använder ett pagingscript som fungerar utmärkt till en söksida när sökningen hittar 1 eller flera matches.

Men hittar den inget i sökningen så får jag felet

ADODB.Recordset (0x800A0BCD)
Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
search.asp, line 33

Line 33 är fetstil

sok = Request.Form("Sok")

SQL = "Select * from DollsNyheter Where DollsNyheter.Nyhet Like '%" & sok & "%' OR DollsNyheter.NyhetsRubrik LIKE '%" & sok & "%' order by NyhetsDatum ASC"

Set RsSok = Server.CreateObject("ADODB.Recordset")

intPageSize = 5
intPage = Request.QueryString("page")

If intPage = "" Then intPage = 1

RsSok.PageSize = intPageSize
RsSok.Open SQL, Connect, 3, 1
[b]RsSok.AbsolutePage = intPage[/b]
intTotalPages = RsSok.PageCount
Medlem sedan dec. 20002 526 inlägg
#2

du far gora en If-sats som kollar om det ar tomt:

sok = Request.Form("Sok")

SQL = "Select * from DollsNyheter Where DollsNyheter.Nyhet Like '%" & sok & "%' OR DollsNyheter.NyhetsRubrik LIKE '%" & sok & "%' order by NyhetsDatum ASC"

Set RsSok = Server.CreateObject("ADODB.Recordset")

If RsSok.eof then
response.write "Inget matchade"
Else

intPageSize = 5
intPage = Request.QueryString("page")

If intPage = "" Then intPage = 1

RsSok.PageSize = intPageSize
RsSok.Open SQL, Connect, 3, 1
RsSok.AbsolutePage = intPage
intTotalPages = RsSok.PageCount
'.......... resten av koden
End IF
Medlem sedan mars 2003772 inlägg
#3

Lägger jag den där får jag felet

Operation is not allowed when the object is closed.

Jag får error om ja lägger den efter jag öppnar också

Medlem sedan jan. 20032 285 inlägg
#4

Testa med den här.

sok = Request.Form("Sok")

SQL = "Select * from DollsNyheter Where DollsNyheter.Nyhet Like '%" & sok & "%' OR DollsNyheter.NyhetsRubrik LIKE '%" & sok & "%' order by NyhetsDatum ASC"

Set RsSok = Server.CreateObject("ADODB.Recordset")

intPageSize = 5
intPage = Request.QueryString("page")

If intPage = "" Then intPage = 1

RsSok.Open SQL, Connect, 3, 1
If RsSok.EOF Then
  Response.Write("Inga matchningar.")
Else
  RsSok.PageSize = intPageSize
  RsSok.AbsolutePage = intPage
  intTotalPages = RsSok.PageCount
Medlem sedan mars 2003772 inlägg
#5

Detdär funka bra Sebbe, jag trodde jag hade testat att lägga det direkt efter jag öppnade recordsettet men tydligen inte.

Hur gör jag på bästa sätt för att skriva ut
Response.Write("Inga matchningar.") mitt på sidan?`

Som det står nu så skrivs det högst upp på sidan.

Medlem sedan jan. 20032 285 inlägg
#6

Du kan ju göra såhär.

sok = Request.Form("Sok")

SQL = "Select * from DollsNyheter Where DollsNyheter.Nyhet Like '%" & sok & "%' OR DollsNyheter.NyhetsRubrik LIKE '%" & sok & "%' order by NyhetsDatum ASC"

Set RsSok = Server.CreateObject("ADODB.Recordset")

intPageSize = 5
intPage = Request.QueryString("page")

If intPage = "" Then intPage = 1

RsSok.Open SQL, Connect, 3, 1
If RsSok.EOF Then
  blnTom = True
Else
  RsSok.PageSize = intPageSize
  RsSok.AbsolutePage = intPage
  intTotalPages = RsSok.PageCount

[b]Mitt på sidan:[/b]

If blnTom Then
  Response.Write("Inga matchningar.")
End If
Medlem sedan mars 2003772 inlägg
#7

Super! Tack så hemskt mycket!

261 ms totalt · 4 externa anrop · v20260731065814-full.2f471f9e
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)