Innan jag börjar härja runt i koden: vad vill du göra med den?
------------------
Nu har du sjungit på sista refrängen
Jourhavande Vide
18 svar · 299 visningar · startad av jimpa
Hej,
Har ett litet 'stort' problem
Just nu ser koden ut så här, vilket funkar ganska bra.
<%Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "DSN=b1464-crossdata;Password=@01#$hefghhdgmlbfkjdhmpfbce"
Set RecSet = Connect.Execute("SELECT * FROM cross WHERE ID=" & Request.QueryString("ID"))
Set RS = Connect.Execute("SELECT * FROM image WHERE crossID=" & Request.QueryString("ID"))
%>
Problemet är att jag måste skapa ett ADODB.Recordset för att pagingen ska funka
Ööö hur ska min kod se ut då för att funka?
Provade det här:
<%Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "DSN=b1464-crossdata;Password=@01#$hefghhdgmlbfkjdhmpfbce"
Set RecSett = Server.CreateObject("ADODB.Recordset")
Set RecSet = Connect.Execute("SELECT * FROM cross WHERE ID=" & Request.QueryString("ID"))
Set RS = Connect.Execute("SELECT * FROM image WHERE crossID=" & Request.QueryString("ID"))
RecSett.Open Connect, RS, RecSet, adOpenDynamic, adLockOptimistic
%>
Fick detta felmeddelandet:
Microsoft VBScript runtime error '800a000d'
Type mismatch: 'RecSett.Open'
/cross/show_image.asp, line 26
Då provade jag att göra så här:
<%Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "DSN=b1464-crossdata;Password=@01#$hefghhdgmlbfkjdhmpfbce"
Set RecSett = Server.CreateObject("ADODB.Recordset")
Set RecSet = "SELECT * FROM cross WHERE ID=" & Request.QueryString("ID")& " "
Set RS = "SELECT * FROM image WHERE crossID=" & Request.QueryString("ID")& " "
RecSett.Open Connect, RS, RecSet, adOpenDynamic, adLockOptimistic
%>
Men fick då detta felmeddelande
Microsoft VBScript runtime error '800a01a8'
Object required: '[string: "SELECT * FROM cross "]'
/cross/show_image.asp, line 22
Något annat förslag ?
//m.v.h. Jimpa
Innan jag börjar härja runt i koden: vad vill du göra med den?
------------------
Nu har du sjungit på sista refrängen
Jourhavande Vide
Ett adodb.recordset skapar du på detta vis:
objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open SQL, objConn, CursorType, LockType
CursorType kan vara en siffra mellan 0 och 3 och LockType en siffra mellan 1 och 4
vilka man ska använda beror på vad man ska göra med recordsetet.
cya
------------------
Private Function OutPut(ByRef sString)
OutPut = "Who gives ..." & sString
End Function
hur ser din kod ut nu??
------------------
Private Function OutPut(ByRef sString)
OutPut = "Who gives ..." & sString
End Function
Så här :
<%Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "DSN=b1464-crossdata;Password=@01#$hefghhdgmlbfkjdhmpfbce"
Set objRS = Server.CreateObject("ADODB.Recordset")
Set RecSet = "SELECT * FROM cross WHERE ID=" & Request.QueryString("ID")& " "
Set RS = "SELECT * FROM image WHERE crossID=" & Request.QueryString("ID")& " "
objRS.Open Connect, RS, RecSet, CursorType, LockType
%>
objRS.Open SQL, objConn, CursorType, LockType
//m.v.h. Krångel Jimpa
Glöm den sista raden !!!!
prova:
objRS.Open Connect, RS, RecSet, 0, 1
------------------
Private Function OutPut(ByRef sString)
OutPut = "Who gives ..." & sString
End Function
denna rad:
Set RecSet = "SELECT * FROM cross WHERE ID=" & Request.QueryString("ID")& " "
bör se ut så här:
Set RecSet = "SELECT * FROM cross WHERE ID=" & Request.QueryString("ID")
likadant med raden under annars behandlas det som finns i querystringen som text .... och det tror jag itne att du vill =O
cya,
------------------
Private Function OutPut(ByRef sString)
OutPut = "Who gives ..." & sString
End Function
likadant med raden under annars behandlas det som finns i querystringen som text .... och det tror jag itne att du vill
patrikb, du får gärna förklara vad det gör för praktisk skillnad. hela sql-frågan byggs ju upp som en sträng, och om id råkar vara ett tal, eller en sträng när du lägger till det i frågan har ingen som helst betydelse. det som har betydelse är att du har apostrofer runt textvärden i din fråga, men inte runt tal/räknare.
jimpa, rad 23, vilken är den? objRS.open ... ?
prova den här koden:
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "DSN=b1464-crossdata;Password=@01#$hefghhdgmlbfkjdhmpfbce"
Set objRS = Server.CreateObject("ADODB.Recordset")
Set strSQL1 = "SELECT * FROM cross WHERE ID=" & Request.QueryString("ID")
Set strSQL2 = "SELECT * FROM image WHERE crossID=" & Request.QueryString("ID")
objRS.Open strSQL1, Connect, 0, 1
%>
jag tycker att du har lite förvillanda variabelnamn, speciellt på dina två sql-frågor. varför kalla dem för recordsets :q
hoppas du förstår!
mvh,
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
if i'm not back in five minutes, just wait longer.</A>
.... helt rätt anders .....[:o]
va nog för mycket john blund .....
------------------
Private Function OutPut(ByRef sString)
OutPut = "Who gives ..." & sString
End Function
Men varför använder ni Set på SQL-strängarna?
------------------
Nu har du sjungit på sista refrängen
Jourhavande Vide
oh, tjena, fruktansvärt bra fråga vide.
blindness, blindness... ;)
*skäms*
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "DSN=b1464-crossdata;Password=@01#$hefghhdgmlbfkjdhmpfbce"
Set objRS = Server.CreateObject("ADODB.Recordset")
strSQL1 = "SELECT * FROM cross WHERE ID=" & Request.QueryString("ID")
strSQL2 = "SELECT * FROM image WHERE crossID=" & Request.QueryString("ID")
objRS.Open strSQL1, Connect, 0, 1
%>
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
if i'm not back in five minutes, just wait longer.</A>
jimpa, prova alltså igen, utan set före sql-strängarna...
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
if i'm not back in five minutes, just wait longer.</A>
Många kloka hjärnor igång här ser jag.
Måste ställe en (kanske dum) fråga: Vad är skillnaden mellan att skriva exempelvis
objRS.Open SQLselect, Connect, 0, 1
jämfört med
conn.open DSN
set rs=conn.execute("select * bla,bla")
Är det någon skillnad?