Avatar billede zeusdk Nybegynder
29. december 2002 - 22:41 Der er 5 kommentarer og
2 løsninger

DB: Find værdi som ligner mest

Hej

Jeg har et script, som sletter et link. Problemet er bare, hvis man glemmer et enkelt tegn i linket, for så vil sletningen ikke gennemføres. Så derfor må du gerne udbygge nedenstående script, så det finder det link, som er tættest på, og forslår sletning af det.

<%
    Set myConn=Server.CreateObject("ADODB.Connection")
    myConn.Open ("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE="+server.Mappath("/db/selvet.mdb"))
   
    strSQL="select * FROM search WHERE url_link = '" & Request.Form("link") & "'"
    set rs = myConn.execute(strSQL)

    if rs.EOF then
        besked = "Linket blev ikke fundet."
        returnLink = Request.Form("link")
    else
        strSQL="delete * FROM search WHERE url_link = '" & Request.Form("link") & "'"
        set rs = myConn.execute(strSQL)
        besked = "Linket blev slettet."
        returnLink = ""
    end if
   
    myConn.close
   
    response.redirect("index.asp?besked=" & besked & "&link=" & returnLink)
%>
Avatar billede medions Nybegynder
29. december 2002 - 23:52 #1
<%
    Set myConn=Server.CreateObject("ADODB.Connection")
    myConn.Open ("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE="+server.Mappath("/db/selvet.mdb"))
   
    strSQL="select * FROM search WHERE url_link LIKE('" & Request.Form("link") & "')"
    set rs = myConn.execute(strSQL)

    if rs.EOF then
        besked = "Linket blev ikke fundet."
        returnLink = Request.Form("link")
    else
        strSQL="delete * FROM search WHERE url_link = '" & Request.Form("link") & "'"
        set rs = myConn.execute(strSQL)
        besked = "Linket blev slettet."
        returnLink = ""
    end if
   
    myConn.close
   
    response.redirect("index.asp?besked=" & besked & "&link=" & returnLink)
%>

//>Rune
Avatar billede zeusdk Nybegynder
30. december 2002 - 09:50 #2
Ok, så jeg skal bare bruge like(), men hvor "uoverensstemmelse" kan like() klare, før den ikke mener, at der er tale om de samme links?
Avatar billede dgivoni Nybegynder
30. december 2002 - 10:10 #3
LIKE kan ikke goere det du vil have den til. LIKE giver dig mulighed for selv at lave et meget simpelt moenster som den kan genkende en streng paa, dvs. skrive %abc% og saa vil den finde alle de felter, hvor der et eller andet sted staar abc. (Laes evt. mere om LIKE her: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_tsqlcon_6lyk.asp)
Det du har brug for er en ret avanceret streng-funktion, som kan acceptere stavefejl etc. Saa vidt jeg ved findes det ikke i SQL selv, jeg har hoert om en lignende funktion til Access-databaser, men ikke til MS SQL Server. Det er en stoerre historie at give sig i kast med, men ret interessant...
Avatar billede zeusdk Nybegynder
30. december 2002 - 18:55 #4
Ok, men kan jeg så ikke komme til at se koden for det?
Avatar billede taager-kongen Nybegynder
30. december 2002 - 19:34 #5
lytter
Avatar billede dgivoni Nybegynder
30. december 2002 - 23:33 #6
ja, altså som jeg skrev er det ikke noget man (læs: jeg) lige hælder ud af ærmet. Men én måde at gøre det på er at generere et passende antal varianter af den streng du ønsker at søge efter, og så søge efter dem alle sammen. F.eks. hvis du søger efter "dag" så søg både efter "ddag", "daag", "dagg", "dg", "ag", "da", "dga", "adg" etc. sådan at du både tager højde for et manglende bogstav, et bogstav for meget eller hvis der er byttet om på to bogstaver.
Avatar billede zeusdk Nybegynder
12. januar 2003 - 19:37 #7
Lukker og slukker - ingen kunne komme med en løsning.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester