---
title: "Söka i databas"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/8442-söka-i-databas"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Jörgen HP"
published: "2001-03-07T20:53:00.000Z"
updated: "2001-03-08T00:01:00.000Z"
replies: 3
views: 175
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/8442-söka-i-databas"
---

# Söka i databas

## #1 — Jörgen HP, 2001-03-07T20:53Z

Hej!

Har gjort ett script för att söka igenom en databas. Min fråga, finns det kanske ett smartare och bättre sätt att göra på?

Lite kod:

\<%@ LANGUAGE="VBScript" %\>

\<%
	Dim sokning
	sokning = Request("sokning") 

	Set Connection = Server.CreateObject("ADODB.Connection")
	
	Connection.Open "DSN="

	SQLStmt = "SELECT \* FROM Link "
	SQLStmt = SQLStmt & "WHERE beskrivning LIKE '%" & sokning & "%' "
	SQLStmt = SQLStmt & "OR "
	SQLStmt = SQLStmt & "titel LIKE '%" & sokning & "%' "
	SQLStmt = SQLStmt & "ORDER BY Titel "

	Set RS = Connection.Execute(SQLStmt)
%\>

\<html\>
\<head\>\</head\>

\<body\>

\<%
	
CurrentRecord = 0

Do While CheckRS(RS)%\>
   
\<a href="\<%= RS("url") %\>"\>\<font size="3"\>\<strong\>\<%= RS("titel") %\>\</strong\>\</font\>\</a\>
          
\<p\>\<%= RS("beskrivning") %\> \</p\>
       
\<%		
RS.MoveNext
		
CurrentRecord = CurrentRecord + 1
	
Loop
%\>

\<%	If CurrentRecord = 0 Then %\>

\<p\>Tyvärr fanns det ingenting som matchade din sökning.\</p\>
    
\<%	
End If 
Connection.Close 
%\>

\</html\>

Mvh
Jörgen

Permalänk: https://www.webforum.nu/p/8442

## #2 — crisse6, 2001-03-07T21:07Z

jag vet inte...men jag tycker du kan sätta ihop sql satsen lite kanske...? det har jag gjort... på en ända lång rad :e

din kod ser väldigt lång ut, men det är den ju inte om man kollar på alla mellanrum som du har ;) men eftersom jag är ganska ny på det med asp kan jag inte säga så mkt... :( har försökt iaf :e

Permalänk: https://www.webforum.nu/p/260684

## #3 — SilvioF, 2001-03-07T23:57Z

Min första fråga blir: Vad använder du CurrentRecord till? för att räkna antalet träffar? Gör om till ett Recordset och använd istället RecordCount i så fall.

```
<%@ LANGUAGE="VBScript" %>
<%
sokning = Request("sokning")
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "DSN="
SQLStmt = "SELECT * FROM Link WHERE beskrivning LIKE '%" & sokning & "%' " & "OR titel LIKE '%" & sokning & "%' ORDER BY Titel"
Set RS = Server.CreateObject(!ADODB.Recordset")
RS.Open SQLStmt, Connection, 1, 3
%>
<html>
  <body>
  <%
  If not (RS.EOF or RS.BF) Then
    Do While not (RS.EOF or RS.BF)
      %>
      <a href="<%= RS("url") %>">
        <font size="3">
          <strong>
            <%= RS("titel") %>
          </strong>
        </font>
      </a>
      <p>
        <%= RS("beskrivning") %>
      </p>
      <%
      RS.MoveNext
    Loop
  Else
      %>
      <p>
        Tyvärr fanns det ingenting som matchade din sökning.
      </p>
      <%
  End If
  Connection.Close
  %>
  </body>
</html>
```

Lite mindre kod. Kanske inte det mest effektiva sättet, men det funar bra prestandamässigt för mig och detta är liknande det sätt jag använder för en sökning i ett recordset.

Permalänk: https://www.webforum.nu/p/260685

## #4 — SilvioF, 2001-03-08T00:01Z

Glömde vissta att stoppa in en variabel för antalet träffar också. Det görs genom att lägga in följande kod efter öppningen av RS.

```
AntalTraffar = RS.RecordCount
```

Ha överseende med stavfelen i vissa delar av ovantsående kod, men klockan är ändå ett på natten och jag har nyss kommit hem från jobbet.

Permalänk: https://www.webforum.nu/p/260686

---

Tråden på webben: https://www.webforum.nu/amne/asp/8442-söka-i-databas
