Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Sökning i DB

Postades av 2001-05-12 08:16:00 - Torbjörn Karlsson, i forum asp - allmänt, Tråden har 15 Kommentarer och lästs av 822 personer

Hejsan!!

Finns det nåt sätt att söka fram fler än ett enda ord ur databasen.

Nedan exempel plockar fram ett ord, med jag skulle vilja kunna plocka ut fler om strängen innehåller kommatecken eller mellanslag mellan orden.

SokOrd = Request.Form("sokord")

SQL="SELECT * FROM tabell WHERE text LIKE '%" & SokOrd & "%' "

Det kanske finns nåt sätt att sortera upp strängen innan den körs i databasen??

mvh
Torbjörn


Svara

Sv: Sökning i DB

Postades av 2001-05-12 10:41:00 - Jan Eriksson

Något åt detta hållet borde fungera. Har inte testat koden så du får labborera lite.

<%
stmSQL = "Select * From MinTabell Where "
varSeek = Split(Trim(Request.Form("Seek")))

For Each varSeekWord In varSeek
If varMoreWord Then stmSQL = stmSQL & " Or"
stmSQL = stmSQL & " MittFält Like '%" & varSeekWord & "%'"
varMoreWord = True
Next

%>


/Janne


Svara

Sv: Sökning i DB

Postades av 2001-05-12 10:52:00 - Patrik Löwendahl

<code>
dim criterias
dim criteria
dim slike
dim ssql

criterias = split(request.form("search"), ",")

for each criteria in criterias
slike = slike & " LIKE '%" & criteria & "%' OR"
next

slike = left(slike, len(slike) - 2)

ssql = "SELECT Name, Adress, Phone FROM Kings WHERE " & slike & ";"

</code>


Svara

Sv: Sökning i DB

Postades av 2001-05-12 11:27:00 - Christoffer Hedgate

Bara så att du är medveten om det, denna sökning kommer att ta _lång_ tid om tabellen är stor, eftersom databasmotorn måste kontrollera varje rad för att se om ordet/orden finns med. Den kan alltså inte använda sig av något index på kolumnen.


Svara

Sv: Sökning i DB

Postades av 2001-05-12 19:46:00 - Torbjörn Karlsson

Tackar!!


Skall testa lite och se vilket som funkar!

Tänkte på Christoffers inlägg om index. Kan inte databasen indexera den aktuella kolumnen, eller är jag ute och snedseglar nånstans..? :)

mvh
Torbjörn


Svara

Sv: Sökning i DB

Postades av 2001-05-13 11:10:00 - Christoffer Hedgate

Jo, visst kan den det, men indexet går inte att utnyttja i denna frågan. Indexet är ju uppbyggt i den ordningen som tecknen kommer i, dvs strängar som börjar på a ligger först, därefter b osv. Men eftersom din fråga inte specificerar början på villkoret, så vet den ju inte var den ska börja, alltså måste den göra en full table-scan för att kontrollera varje rad.


Svara

Sv: Sökning i DB

Postades av 2001-05-14 21:23:00 - Torbjörn Karlsson

Nepp!!

Det vill sig inte..!

Har testat att använda bägge exemplen ovan, men lyckas inte få något av dessa att fungera. Nåt fel gör jag säkert....

Har nog lyckats producera de flesta felmeddelanden som finns, så jag tror inte det kan ge någon ledning heller.

Finns det nån som kanske kan utveckla exemplen ovan lite mer så vore jag tacksam. vb-funktionen Split verkar vara en smidig lösning att dela upp strängar så om det går att spinna vidare på detta kanske..??

Liksom tidigare så är det endast en kolumn inblandad, vilken tillfrågas från ett formulärfält. Tabb eller komma-separatorer bör förekomma mellan sökord.

mvh
Torbjörn


Svara

Sv: Sökning i DB

Postades av 2001-05-14 21:29:00 - Jan Eriksson

Innan du kör execute(stmSQL) så kan du lägga in

respons.write stmSQL

Då får du en utskrift av SQL uttrycket innan felmeddelandet kommer. Genom denna går det lättare att leta fel. Lägg gärna ut felmeddelande inkl kod så blir det lättare att hjälpa dig.

/Janne


Svara

Sv: Sökning i DB

Postades av 2001-05-14 21:39:00 - Torbjörn Karlsson

Lägger ut koden istället... lyckades inte med utskrift :(

Ibland känner man sig oduglig... :o
Well here it is !

-------------------------------------------------------------
val = Split(Request.Form("val"), ",")

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open("Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.Mappath("data/travel.mdb"))


SQL ="SELECT * FROM tbtraveller WHERE"
varSeek = Split(Trim(Request.Form("val")))
Response.Write(SQL)
Set RS = Conn.Execute(SQL)

For Each varSeekWord In varSeek
If varMoreWord Then SQL = SQL &" OR "SQL = SQL & " intresse LIKE '%" & varSeekWord & "%'
varMoreWord = True
Next

Do until RS.EOF
Response.Write(RS("fnamn"))

RS.MoveNext
Loop
-----------------------------------------------------------------

mvh Torbjörn


Svara

Sv: Sökning i DB

Postades av 2001-05-14 22:13:00 - Jan Eriksson

Pröva detta. Om du får ett felmeddelande så skicka detta + enbart den kodraden.

Oduglig? Äsch, vem kan vara proffs på allt...?

/Janne

--------------------------

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open("Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.Mappath("/data/travel.mdb"))


stmSQL ="SELECT * FROM tbtraveller WHERE"
varSeek = Split(Trim(Request.Form("val")))

For Each varSeekWord In varSeek
If varMoreWord Then stmSQL = stmSQL & " OR "
stmSQL = stmSQL & " intresse LIKE '%" & varSeekWord & "%'
varMoreWord = True
Next

Response.Write stmSQL

Set RS = Conn.Execute(stmSQL)

Do until RS.EOF
Response.Write(RS("fnamn"))
RS.MoveNext
Loop

------------------------------------


Svara

Sv: Sökning i DB

Postades av 2001-05-14 22:41:00 - Torbjörn Karlsson



Försökte att dubbelfnutta in satsen lite här och var, men den är lite grinig.. :)

Felmeddelande:
Oavslutad strängkonstant
/travel/test_search.asp, line 12, column 57
stmSQL = stmSQL & " intresse LIKE '%" & varSeekWord & "%'
--------------------------------------------------------^

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open("Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.Mappath("data/travel.mdb"))


stmSQL ="SELECT * FROM tbtraveller WHERE"
varSeek = Split(Trim(Request.Form("val")))

For Each varSeekWord In varSeek
If varMoreWord Then stmSQL = stmSQL & " OR "
stmSQL = stmSQL & " intresse LIKE '%" & varSeekWord & "%'
varMoreWord = True
Next

Response.Write stmSQL

Set RS = Conn.Execute(stmSQL)

Do until RS.EOF

Response.Write(RS("fnamn"))

RS.MoveNext
Loop


Svara

Sv: Sökning i DB

Postades av 2001-05-14 22:47:00 - Jan Eriksson

En lite rackare på slutet

stmSQL = stmSQL & " intresse LIKE '%" & varSeekWord & "%'"

/Janne


Svara

Sv: Sökning i DB

Postades av 2001-05-14 22:58:00 - Torbjörn Karlsson

Nu börjar det likna nåt..


Det funkar................

Och ett stort tack för hjälpen.

mvh
Torbjörn



Svara

Sv: Sökning i DB

Postades av 2001-05-14 23:07:00 - Jan Eriksson

Skojigt.

/Janne


Svara

Nyligen

  • 14:16 Indian online casino
  • 14:15 Indian online casino
  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 846
27 961
271 763
2 846
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies