webForumDet fria alternativet

Borde inte detta Recset fungera?

2 svar · 290 visningar · startad av Oputres

OputresMedlem sedan feb. 2004333 inlägg
#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)))

@ndersMedlem sedan juni 200032 969 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

OveRRidEMedlem 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.

126 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)