webForumDet fria alternativet

Hur kan man skapa ett ADODB.Recordset?

ASP

18 svar · 299 visningar · startad av jimpa

Medlem sedan jan. 2001361 inlägg
Frågan#1

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

Medlem sedan dec. 19998 577 inlägg
#2

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

Medlem sedan jan. 2001361 inlägg
#3

Hej,

Skapa ett ADODB.Recordset
Men jag får inte det att funka då.

Tror det måste finnas med för att pagingen ska funka.

//m.v.h. Krångel Jimpa

Medlem sedan mars 20002 836 inlägg
#4

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

Medlem sedan jan. 2001361 inlägg
#5

Fick detta meddelande när jag provade

Microsoft VBScript runtime error '800a01b6'

Object doesn't support this property or method: 'objRS.Open'

/cross/show_image.asp, line 24

//m.v.h. Jimpa

Medlem sedan mars 20002 836 inlägg
#6

hur ser din kod ut nu??

------------------
Private Function OutPut(ByRef sString)
OutPut = "Who gives ..." & sString
End Function

Medlem sedan jan. 2001361 inlägg
#7

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

Medlem sedan jan. 2001361 inlägg
#8

Glöm den sista raden !!!!

Medlem sedan mars 20002 836 inlägg
#9

prova:

objRS.Open Connect, RS, RecSet, 0, 1

------------------
Private Function OutPut(ByRef sString)
OutPut = "Who gives ..." & sString
End Function

Medlem sedan jan. 2001361 inlägg
#10

Fick detta fel:

Microsoft VBScript runtime error '800a01a8'

Object required: '[string: "SELECT * FROM cross "]'

/cross/show_image.asp, line 22

//m.v.h. Jimpa

Medlem sedan mars 20002 836 inlägg
#11

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

Medlem sedan jan. 2001361 inlägg
#12

Fick samma fel igen:

Microsoft VBScript runtime error '800a01a8'

Object required: '[string: "SELECT * FROM cross "]'

/cross/show_image.asp, line 22

//m.v.h. Jimpa

Medlem sedan juni 200032 967 inlägg
#13

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>

Medlem sedan mars 20002 836 inlägg
#14

.... helt rätt anders .....[:o]
va nog för mycket john blund .....

------------------
Private Function OutPut(ByRef sString)
OutPut = "Who gives ..." & sString
End Function

Medlem sedan jan. 2001361 inlägg
#15

Hej,

Provade den senare koden, men fick samma felmeddelande igen.
Något mer förslag?

//m.v.h. Jimpa

Medlem sedan dec. 19998 577 inlägg
#16

Men varför använder ni Set på SQL-strängarna?

------------------
Nu har du sjungit på sista refrängen
Jourhavande Vide

Medlem sedan juni 200032 967 inlägg
#17

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>

Medlem sedan juni 200032 967 inlägg
#18

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>

Medlem sedan feb. 200144 inlägg
#19

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?

272 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
131 ms — deklarationer (db)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)