webForumDet fria alternativet
Logga in / Bli medlem

Borde inte detta Recset fungera?

ASP

2 svar · 290 visningar · startad av Oputres

Medlem sedan feb. 2004333 inlägg
Trådstart#1

Jaha, borde inte dessa RecSet fungera?

Alternativ 1:
=============================================
Set RecSet = Connect.Execute("SELECT * FROM gastbok Where Privat = False ORDER BY Dag DESC")
=============================================

Alternativ 2:
=============================================
Set RecSet = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM gastbok Where Privat = False ORDER BY Dag DESC"
Set RecSet = Connect.Execute(SQL)
=============================================

Den gamla hederliga varianten funkar dock:
=============================================
Set RecSet = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM gastbok Where Privat = False ORDER BY Dag DESC"
RecSet.Open SQL, Connect, adOpenStatic, adLockOptimistic
=============================================

Följande felmeddelande får jag när jag försöker köra de övre två varianterna, jag får inget fel när jag kör den tredje koden:
Körningsfel i Microsoft VBScript (0x800A000D)
Inkompatibla typer: '[string: "--3,33333333333333E-"]'
/majagastbok.asp, line 16

Så här ser koden ut på rad 16 (=sidräknare)
antalsidor=abs(int(Cstr("-"&RecSet.RecordCount/antal)))

Medlem sedan juni 200032 967 inlägg
#2

Nej, de borde inte fungera. Egenskapen RecordCount finns bara när du öppnar recordsetet som du gör i det sista alternativet.

mvh

Medlem sedan feb. 200112 078 inlägg
#3

Jag är tveksam till ifall försöket att anropa .recordcount genererar det där felmeddelandet. Rättare sagt; jag är ganska säker på att det inte är det som är felet. Det är nog snarare en kombination av att .recordcount returnerar -1 om ditt recordset är EOF eller om du öppnat recordse'et med .execute, samt att du har ett lite skumt värde som du försöker mangla genom abs() och int(). Vidare; varför typar du alltihopa till en sträng innan dessa funktioner?

Också, ditt alternativ 2 ovan; du behöver inte skapa ADODB.Recordset i RecSet-variabeln innan Execute, det görs automagiskt.

372 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
122 ms — deklarationer (db)
118 ms — hämta statistik (db)
128 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)