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.*
9 svar · 205 visningar · startad av erka
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 !
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.*
AHhh ha ha missade det, tack så mycket
------------------
Real mad hiphop flavaz kickin' it right from tha street without no FEAR, Yo !
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 !
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 !
cursorlocation <> cursortype
Cursorlocation = 3 anger att allt data buffras på (databas-)klienten
------------------
essentitia preter non sans multiplicandum
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 !
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
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 !
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