DanneSt Medlem sedan feb. 2004 1 311 inlägg Frågan 6 dec. 2005 16:56 #1 Operation is not allowed when the object is open.
Varför får jag detta felmeddelande?
I koden har jag försökt köra två recset.open:
SQL = "SELECT * FROM tabell1 WHERE id =" & Request.QueryString("id")
RecSet.Open SQL, Conn
SQL2 = "SELECT * FROM tabell2"
RecSet.Open SQL2, Conn
@nders Medlem sedan juni 2000 32 967 inlägg Du öppnar samma recordset två gånger? Andra gången är det ju redan öppet???
DanneSt Medlem sedan feb. 2004 1 311 inlägg Jamen, det ÄR ju inte samma recordset! SQL & SQL2 heter de ju...?
Eller har jag fått något om bakfoten? :-s
@nders Medlem sedan juni 2000 32 967 inlägg Du cyklar om bakfoten ja. Recordsetet heter ju likadant (RecSet ). Att dina två variabler med SQL-frågor i heter olika spelar i detta fall ingen roll.
DanneSt Medlem sedan feb. 2004 1 311 inlägg Ouch!! Hehe, ok...
Vad tror du om denna då?
SQL = "SELECT * FROM tabell1 WHERE id =" & Request.QueryString("id")
SQL2 = "SELECT * FROM tabell2"
RecSet.Open SQL,SQL2, Conn
L LarsG Medlem sedan dec. 2000 12 464 inlägg Om den tror jag inte
SQL = "SELECT * FROM tabell1 WHERE id =" & Request.QueryString("id")
set recSet1 = conn.execute(SQL)
SQL = "SELECT * FROM tabell2"
set Recset2 = conn.execute(sql)
UlfT Medlem sedan maj 2001 8 027 inlägg Det är väl bara att stänga RecSet innan man öppnar det för nästa fråga. :)
DanneSt Medlem sedan feb. 2004 1 311 inlägg Ok, tack för tipset LarsG!
Jag har gjort en liknande manöver:
Set Recset2= Server.CreateObject("ADODB.Recordset")
...
SQL = "SELECT * FROM bilder"
RecSet2.Open SQL, Conn
Men får nu istället detta fel:
[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'lgh=Bergsgatan 19'.
Vad fattas nu?
@nders Medlem sedan juni 2000 32 967 inlägg Du skall ha apostrofer runt strängvärden (dvs runt Bergsgatan 19 ) i SQL.
DanneSt Medlem sedan feb. 2004 1 311 inlägg Så här ser koden ut egentligen:
SQL = "SELECT * FROM bilder WHERE lgh=" & lghnamnet
RecSet2.Open SQL, Conn
"lgh" är kolumnnamnet i tabellen "bilder".
"lghnamnet" är en variabel som jag fyllt med en adress från en annan tabell (i detta fall Bergsgatan 19).
Tanken är att dessa ska vara identiska.
@nders Medlem sedan juni 2000 32 967 inlägg Ok. Lägg då till apostrofer runt strängvärdet så bör den SQL-frågan fungera.
DanneSt Medlem sedan feb. 2004 1 311 inlägg Så här?
SQL = "SELECT * FROM bilder WHERE lgh=" & 'lghnamnet'
RecSet2.Open SQL, Conn
DanneSt Medlem sedan feb. 2004 1 311 inlägg Nä. Provade även med:
SQL = "SELECT * FROM bilder WHERE lgh=" & "lghnamnet"
RecSet2.Open SQL, Conn
men fick felet:
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
L LarsG Medlem sedan dec. 2000 12 464 inlägg SQL = "SELECT * FROM bilder WHERE lgh='" & lghnamnet & "'"
DanneSt Medlem sedan feb. 2004 1 311 inlägg Felmeddelande:
Item cannot be found in the collection corresponding to the requested name or ordinal.
L LarsG Medlem sedan dec. 2000 12 464 inlägg Det beror på att du anger fel namn när du skall hämta värden från ditt recordset.
DanneSt Medlem sedan feb. 2004 1 311 inlägg Kan du utveckla det där lite mer?
Jag vet att jag har värden i de via:
lgh_bild = Recset2("bild")
lgh_lgh = Recset2("lgh")
Response.Write(lghnamnet)
Response.Write(lgh_bild)
Response.Write(lgh_lgh)
lghnamnet och lgh_lgh är identiska, precis som det var meningen.
Men vad är det då som felar?
Kodraden som blir fel är:
<a href="javascript:Bilden('pics/<%=RecSet2(bild)%>','<%=RecSet2("lgh")%>');"><img src="pics/<%=RecSet2("bild")%>" width="90" border="1"></a>
@nders Medlem sedan juni 2000 32 967 inlägg Du saknar citationstecken runt bild i den första utskriften i länken.
DanneSt Medlem sedan feb. 2004 1 311 inlägg YES!!
Nu funkar det!
Tusen tack @nders och LarsG!
Hoppas Ni tjänar miljoner på detta - för det är Ni iaf värda!! :-)
@nders Medlem sedan juni 2000 32 967 inlägg Vad bra att du fick ihop det! :bire
Lycka till med resten. :)