Avatar billede vandhunden Nybegynder
23. februar 2001 - 15:16 Der er 16 kommentarer og
1 løsning

Hjælp til SQL-string.

Jeg har lavet følgende kode til en ASP-side:

========================
  compsent = lcase(trim(Request.Form(\"say\")))

  Conn = \"PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"testman.mdb\") & \";UID=admin;PWD=;\"
  Set myConn = Server.CreateObject(\"ADODB.Connection\")
  myConn.Open Conn
  Set rs = myConn.Execute(\"SELECT * FROM viden\")

    If Not (rs.BOF Or rs.EOF) Then
      Do While Not rs.EOF
      If compsent = rs(\"spm\") then
        Session(\"muligsvar\") = rs(\"svar\")
      end if
      rs.MoveNext
      Loop
    End If

  myConn.Close
  Set myConn = Nothing
========================

Som i måske kan se, skal jeg have udtrukket den post fra tabellen
viden hvor variablen \"compsent\" er lig med feltet \"spm\". Og det skal
siges at den lighed kun vil finde sted i een post. Så der skal altså kun
udtrækkes een post. Sådan som den gør det her, løber den alle
posterne igennem og tjekker, men jeg tænkte om ikke man kunne lave noget med
den der SQL string, noget med WHERE, jeg kan bare ikke få det til at virke.

\"SELECT * FROM viden WHERE compsent=spm\" virker ikke. Hvad skal jeg skrive?

/Andreas
Avatar billede wermelin Nybegynder
23. februar 2001 - 15:24 #1
SELECT * FROM viden WHERE spm = \'\" & compsent & \"\'

noget i den stil
Avatar billede kasseper Nybegynder
23. februar 2001 - 15:24 #2
Nej det er klart du skal bruge denne :
\"SELECT * FROM viden WHERE \'\" & compsent & \"\' =spm\"
Avatar billede kasseper Nybegynder
23. februar 2001 - 15:25 #3
Eller måske noget med :


\"SELECT * FROM viden WHERE spm Like \'\" & compsent & \"\'\" 
Avatar billede wermelin Nybegynder
23. februar 2001 - 15:27 #4
Og for at udskrive den...

If Not (rs.BOF Or rs.EOF) Then
    Do While Not rs.EOF
    Response.Write \" & rs(\"spm\")\"
    rs.MoveNext
    Loop
ELSE
    Response.Write \"No match!\"   
END IF       
Avatar billede wermelin Nybegynder
23. februar 2001 - 15:28 #5
Hvis du bruger LIKE så tager den ikke den absolutte værdi - altså hvis compsent er = sko så finder den både sko og skoda i spm. (bare et ex!!)
Avatar billede vandhunden Nybegynder
23. februar 2001 - 15:28 #6
HVad gør \"Like\"?
Avatar billede gandalfthewhite Nybegynder
23. februar 2001 - 15:28 #7
Du skal lave en INNER JOIN på sig selv:

select tbl1.compsent, tbl2.spm
FROM viden tbl1
INNER JOIN tbl2
ON tbl1.compsent = tbl2.spm
WHERE tbl1.compsent = tbl2.value

Avatar billede vandhunden Nybegynder
23. februar 2001 - 15:30 #8
gandalfthewhite > hvorfor skulle jeg dog det?
Avatar billede wermelin Nybegynder
23. februar 2001 - 15:31 #9
Denne kode skulle kunne gøre alt arbejdet...!


compsent = Trim(Request.Form(\"say\"))

strSQL = \"SELECT * FROM viden WHERE spm = \'\" & compsent & \"\' \"

strDSN = \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\"&Server.MapPath(\"testman.mdb\")
    Set myConn = Server.CreateObject(\"ADODB.Connection\")
    myConn.Open strDSN
    Set rs = myConn.Execute(strSQL)

If Not (rs.BOF Or rs.EOF) Then
    Do While Not rs.EOF
    Response.Write \" & rs(\"spm\")\"
    rs.MoveNext
    Loop
ELSE
    Response.Write \"No match!\"   
END IF       
Avatar billede kasseper Nybegynder
23. februar 2001 - 15:31 #10
jamen gandalfthewhite compsent er ikke noget taget fra en tabel.....Det er fra en form...!
Og jo det kan godt ske det med LIKE, jeg bytter bare så tit om på de 2, så jeg skrev den lige for at han kunne prøve den..::)
Avatar billede billeschou Nybegynder
23. februar 2001 - 15:32 #11
Like finder strenge der minder om hinanden.
F. eks. vil \"where ting Like is\" returnere ris, is osv.
Avatar billede kasseper Nybegynder
23. februar 2001 - 15:34 #12
Nej det er altså kun hvis du også bruger et joker tegn....
Avatar billede billeschou Nybegynder
23. februar 2001 - 15:37 #13
som wermelin siger tager Like da ikke den absolutte værdi...
Avatar billede kasseper Nybegynder
23. februar 2001 - 15:44 #14
Jeg må melde husforbi, jeg ved faktisk ikke om det er tilfældet eller ej. I min SQL bog er LIKE kun brugt sammen med diverse joker tegn ....?!!!!?!
Avatar billede wermelin Nybegynder
23. februar 2001 - 15:47 #15
Nå, men vandhunden - har du fået det til at virke?
Avatar billede billeschou Nybegynder
23. februar 2001 - 15:50 #16
der er vel en grund til at funktionen hedder LIKE og ikke IS
Avatar billede vandhunden Nybegynder
23. februar 2001 - 22:43 #17
Jep. Tak for hjælpen...
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