Hänger inte riktigt med. Vad ska num vara? 5, 6, "ostron"?
Find-metoden ska du inte använda, kan jag i alla fall säga.
15 svar · 244 visningar · startad av JaktJanne
Suttit och slitit mitt hår inför ett problem, vet ej om det går att lösa med den koden som följer:
Set strRS = Server.CreateObject("ADODB.Recordset")
Set strCONN = Server.CreateObject("ADODB.Connection")
strCONN.ConnectionString = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("sokning.mdb")
strCONN.Open
strRS.Open "SELECT * FROM data", strCONN, 2, 3
strRS.Find "num = " & strRS("num")
Do Until strRS.EOF = True
Response.Write "namn = " & strRS("namn")
Response.Write "storlek = " & strRS("storlek")
Response.Write "<p><BR></p>"
strRS.MoveNext
Loop
strRS.Close %>
Vad jag vill göra är att bara visa de poster som = num. Nu får jag upp alla poster i db:n.
Tilläggas att detta är mitt första försök med databaser :)
------------------
JaktJanne
"Mannen är tyst när han lider,
Kvinna lider när hon är tyst"
- Sv. Ordspråk
Hänger inte riktigt med. Vad ska num vara? 5, 6, "ostron"?
Find-metoden ska du inte använda, kan jag i alla fall säga.
num är en "string". Vad jag har gjort är egentligen att modifiera ett script som fungerar att hämta en post till att hämta fler. Att jag inte skall använda Find har jag nog förstått. Har fått tips om följande kod
Set strRS = Server.CreateObject("ADODB.Recordset")
Set strCONN = Server.CreateObject("ADODB.Connection")
strCONN.ConnectionString = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("sokning.mdb")
strCONN.Open
val1 = Request("num")
strSQL="SELECT * FROM data WHERE num LIKE '" & val1 & "'
strRS.Open strSQL
strRS.MoveFirst
Do While Not strRS.EOF
Response.Write "namn = " & strRS("namn")
Response.Write "storlek = " & strRS("storlek")
Response.Write "<p><BR></p>"
strRS.MoveNext
Loop
strRS.Close %>
Det ser väl bättre ut :q
------------------
JaktJanne
"Mannen är tyst när han lider,
Kvinna lider när hon är tyst"
- Sv. Ordspråk
[Redigerat av JaktJanne den 24 jan 2001]
Snart hoppar jag i älva.... :(
Nu får jag felmeddelande.
ADODB.Recordset fel '800a0e7d'
Programmet begärde en åtgärd på ett objekt som refererar till ett stängt eller ett ogiltigt Connection-objekt.
på rad 13, och där står det RecSet.Open strSQL. Och mer
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ= c:\inetpub\wwwroot\databas\sokning.mdb"
nummer = Request("ID")
Set RecSet = Server.CreateObject("ADODB.Recordset")
strSQL="SELECT * FROM data WHERE ID LIKE '& nummer & '"
RecSet.Open strSQL
HHJJJÄÄÄÄLP..
------------------
JaktJanne
"Mannen är tyst när han lider,
Kvinna lider när hon är tyst"
- Sv. Ordspråk
Testa detta:
RecSet.Open strSQL, Connect
------------------
Function onLick(name)
Punch.name(in_the_ear)
End Function
Jourhavande Vide
ehrm... skit i mitt föregående inlägg :e
RecSet.Open strSQL, "Driver={Microsoft Access Driver (*.mdb)};DBQ= c:\inetpub\wwwroot\databas\sokning.mdb"
------------------
Function onLick(name)
Punch.name(in_the_ear)
End Function
Jourhavande Vide
Grrrr... :e
Varför använder du ett recordset föresten?
------------------
Function onLick(name)
Punch.name(in_the_ear)
End Function
Jourhavande Vide
Frågar du en gröngöling det.
har du alternativ att hämta postar om innehållet i fältet stämmer med önskad val.
Jag behöver ocksåanvända Response.write
Hoppas du fattar :e
------------------
JaktJanne
"Mannen är tyst när han lider,
Kvinna lider när hon är tyst"
- Sv. Ordspråk
[Redigerat av JaktJanne den 24 jan 2001]
Gör såhär istället:
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ= c:\inetpub\wwwroot\databas\sokning.mdb"
nummer = Request("ID")
strSQL="SELECT * FROM data WHERE ID LIKE '& nummer & '"
Set rsResult = Connect.execute(strSQL)
Do Until rsResult.EOF
Response.Write "namn = " & rsResult("namn")
Response.Write "storlek = " & rsResult("storlek")
Response.Write "<p><BR></p>"
rsResult.MoveNext
Loop
Lite enklare... :)
------------------
Function onLick(name)
Punch.name(in_the_ear)
End Function
Jourhavande Vide
[Redigerat av Vide den 24 jan 2001]
Det verkar som jag inte får köra SQL uttryck, får detta feelmeddelande:
[Microsoft][Drivrutin för ODBC Microsoft Access] Selected collating sequence not supported by the operating system.
på rad:
Set rsResult = Connect.execute(strSQL)
:q :q :( x(
------------------
JaktJanne
"Mannen är tyst när han lider,
Kvinna lider när hon är tyst"
- Sv. Ordspråk
strSQL="SELECT * FROM data WHERE ID LIKE '& nummer & '"
Vilken datatyp har kolumnen ID? Om den är numeriskt så är predikatet like inte så användbart.
Om ID är numeriskt så skriver man
strSQL="SELECT * FROM data WHERE ID = " & nummer
dvs inga apostrofer omkring sökvärdet.
Like används för fritextsökning i karaktärskolumner. Om man använder like så kan man ha med % eller _ i söksträngen där % matchar 0 eller flera godtyckliga tecken och _ matchar ett godtyckligt tecken.
Om du inte har några wildcards i din söksträng så är det bättre att använda = i stället för like.
Ok @anders.
------------------
essentitia preter non sans multiplicandum
[Redigerat av LarsG den 25 jan 2001]
det är nog inte ofta det händer men larsg har skrivit fel!
strSQL="SELECT * FROM data WHERE ID = " & nummer
det beror väl kanske på att vide också skrivit fel!
fast det var nog bara en temporär black out i grabbarnas huven tror jag. :)
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
if i'm not back in five minutes, just wait longer.</A>
@nders, det heter huvuden inte huven... för jag är då ingen bil :e
------------------
Function onLick(name)
Punch.name(in_the_ear)
End Function
Jourhavande Vide