webForumDet fria alternativet

Problem med funktion och recordcount

ASP

9 svar · 205 visningar · startad av erka

Medlem sedan dec. 19996 522 inlägg
Frågan#1

Jag har flyttat över en databas från access till en mssql2000. Jag har en funktion som hämtar värde och skriver ut en tabell med den informationen, använder recordcount för att räkna antalet rader som finns i den utskrivna tabellen.

Så här ser min funktion ut

Function PaintTable(StartCol,strBGColor2) 

Dim i, x, y 
Dim CN_CreateTable, RS_CreateTable, rsCount 

Set RS_CreateTable = Server.Createobject("ADODB.Recordset") 
Set CN_CreateTable = Server.Createobject("ADODB.Connection") 
CN_CreateTable.Open ""driver={SQL Server}; server=666.66.666.66; uid=IUSR_INTERNET; pwd=Satan;"" 
RS_CreateTable.Open strSQL, CN_CreateTable, 1 

strBGColor = "#FFFFFF" 

y = RS_CreateTable.RecordCount 'Count the number of records 
x = RS_CreateTable.FIELDS.Count 'Counts the number of columns to loop trough 

Loopa å skriv ut tabellen
End Function

Sen på sidan som anropar funktionen (som ligger i en include) skriver jag

strSQL = "sp_DesignDetails " & intDesignID 
PaintTable 1, "#B5D7EF"

Där sqlsattsen är en lagrad procedur i sqlservern.

Jag får -1 på recordcounten men har ju öppnat den static och inte dynamic. Vad gör jag för del, det funkade ju perfekt mot access..

------------------
Real mad hiphop flavaz kickin' it right from tha street without no FEAR, Yo !

Medlem sedan mars 20002 836 inlägg
#2

Det beror på att du har angivit fel cursor och locktype.¨

Testa detta:

RS_CreateTable.Open strSQL, CN_CreateTable, 3, 1

cya,
PatrikB

------------------
*ordning och reda!, pengar på fredag.*

Medlem sedan dec. 19996 522 inlägg
#3

AHhh ha ha missade det, tack så mycket

------------------
Real mad hiphop flavaz kickin' it right from tha street without no FEAR, Yo !

Medlem sedan dec. 19996 522 inlägg
#4

Fungerar inte med

RS_CreateTable.Open strSQL, CN_CreateTable, 3, 1

Men med

RS_CreateTable.CursorLocation = 3 
	RS_CreateTable.Open strSQL, CN_CreateTable, 1

så fungerar det, märkligt varför egentligen, säkert något uppenbart..

------------------
Real mad hiphop flavaz kickin' it right from tha street without no FEAR, Yo !

Medlem sedan dec. 19996 522 inlägg
#5

på msdn säger de att man ibland får lösa det genom att göra en movelast innan man gör recordcounten, men gör jag det får jag ett meddelande

Microsoft OLE DB Provider for ODBC Drivers error '80040e24' 
Rowset does not support fetching backward.

Så det fungerade uppenbarligen inte. Jag kan inte få det att fungera genom att skriva

RS_CreateTable.Open strSQL, CN_CreateTable, 3, 1

Vilket är det samma som

RS_CreateTable.CursorLocation = 3 
RS_CreateTable.Open strSQL, CN_CreateTable, 1

Eller är jag ute å simmar

------------------
Real mad hiphop flavaz kickin' it right from tha street without no FEAR, Yo !

Medlem sedan dec. 200012 464 inlägg
#6

cursorlocation <> cursortype

Cursorlocation = 3 anger att allt data buffras på (databas-)klienten

------------------
essentitia preter non sans multiplicandum

Medlem sedan dec. 19996 522 inlägg
#7

Förstod inte riktigt vad du menade där larsg? säkert något jätterätt...

------------------
Real mad hiphop flavaz kickin' it right from tha street without no FEAR, Yo !

Medlem sedan dec. 200012 464 inlägg
#8

När du gör open så anger du cursortype. Cursorlocation är ett helt annat attribut.

3:an för cursortype betyder adOpenStatic
3:an för cursorlocation betyder
adUseClient

så dina två kodexempel är inte likvärdiga.

------------------
essentitia preter non sans multiplicandum

Medlem sedan dec. 19996 522 inlägg
#9

Ahh nu förstår jag, otrolig miss av mig, tack larsg...Hur skriver man det på en och samma rad då ?

------------------
Real mad hiphop flavaz kickin' it right from tha street without no FEAR, Yo !

Medlem sedan dec. 200012 464 inlägg
#10

Det går inte att ange cursorlocation på annat sätt än det du har gjort (så vitt jag vet.)

Varför vill du ha det på en rad?

------------------
essentitia preter non sans multiplicandum

268 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
132 ms — ändringar (db)