Frågan 20 aug. 2004 08:54 #1 Hej....
Försöker labba lite med ADO recordset.PageCount.
Får det inte att fungera...
response.write rs.PageCount &"<hr>"
returnerar -1.
ADODB.Recordset error '800a0bb9'
Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.
/_mattias övrigt/temp/gb.asp, line 118
If the provider does not recognize this property, a value of -1 will be returned.
Använder följande.
Set Connect = Server.CreateObject( "Adodb.Connection" )
Connect.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath( "gb_2002.mdb" )
Connect.ConnectionString = "Data Source='" & MdbFilePath & "'"
Connect.open
Hur får jag det att fungera? Jag har sett ett annat skript som använde funktionen och jag försöker göra något liknande :)
@nders Medlem sedan juni 2000 32 967 inlägg Då har du öppnat recordsetet på fel sätt.
Hej igen @nders.
StrSql = "SELECT * FROM gbook"
set rs = connect.execute(StrSql)
while not rs.eof
response.write rs("Name") &"<br>"
rs.movenext
wend
if rs.EOF and rs.BOF then ' Nothing Found %>
<P><font face="Verdana, Arial, Helvetica" size=2>No One has signed the book</p></font>
<% exit Sub
End If
' Something found
TotalRows = rs.RecordCount
rs.PageSize = NumPages
TotalPages = rs.PageCount '(DETTA ÄR LINE 125)
response.write TotalRows &"<hr>"
response.write rs.PageCount &"<hr>"
Returnerar:
mattias ndfs
jkjkl
jjk
-1
--------------------------------------------------------------------------------
-1
--------------------------------------------------------------------------------
ADODB.Recordset error '800a0bb9'
Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.
/_mattias övrigt/temp/gb.asp, line 125
När jag loopar mitt recordset och printar ut så fungerar det. Men page funktionen fungerar inte. Säger det er något?
@nders Medlem sedan juni 2000 32 967 inlägg Ja, det säger oss att du öppnat ditt recordset på fel sätt. :)
Du måste ange låstyp och cursortyp när du öppnar ditt recordset för att kunna använda recordcount och pagecount.
Söken sie, bitte. :)
mvh
Hittar en massa information... men fattar inte riktigt.
Set Connect = Server.CreateObject( "Adodb.Connection" )
Connect.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath( "gb_2002.mdb" )
Connect.ConnectionString = "Data Source='" & MdbFilePath & "'"
Connect.open
StrSql = "SELECT * FROM gbook"
Set rs = Server.CreateObject("ADODB.RecordSet")
RecSet.Open StrSql, Conn, 1, 2
????
@nders Medlem sedan juni 2000 32 967 inlägg Läs här om låstyper och cursortyper, så kan du säkert få ihop det.
mvh
Set Connect = Server.CreateObject( "Adodb.Connection" )
Connect.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath( "gb_2002.mdb" )
Connect.ConnectionString = "Data Source='" & MdbFilePath & "'"
Connect.open
StrSql = "SELECT * FROM gbook"
Set rs = Server.CreateObject("ADODB.RecordSet")
RecSet.Open StrSql, Connect, 2, 1
Returnerar:
Microsoft VBScript runtime error '800a01a8'
Object required: ''
/_mattias övrigt/temp/gb.asp, line 90
@nders Medlem sedan juni 2000 32 967 inlägg RecSet är ju inte samma som rs, ju. :)
Bra att du inte ger upp @nders ;)
Set Connect = Server.CreateObject( "Adodb.Connection" )
Connect.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath( "gb_2002.mdb" )
Connect.ConnectionString = "Data Source='" & MdbFilePath & "'"
Connect.open
StrSql = "SELECT * FROM gbook"
Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open StrSql, Connect, 2, 1 '2=adOpenDynamic, 1=adLockReadOnly
Ger nu (igen):
mattias ndfs
jkjkl
jjk
-1
--------------------------------------------------------------------------------
-1
--------------------------------------------------------------------------------
ADODB.Recordset error '800a0bb9'
Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.
/_mattias övrigt/temp/gb.asp, line 126
@nders Medlem sedan juni 2000 32 967 inlägg Provat med 3:an (adOpenStatic)?
B I N G O...
Set Connect = Server.CreateObject( "Adodb.Connection" )
Connect.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath( "gb_2002.mdb" )
Connect.ConnectionString = "Data Source='" & MdbFilePath & "'"
Connect.open
StrSql = "SELECT * FROM gbook"
Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open StrSql, Connect, 3, 1 '3=adOpenStatic, 1=adLockReadOnly
Kunde inte fått detta att fungera utan hjälp. Nu sak jag försöka lära mig hur resten av ADO fungerar... återkommer väl antar jag :r
Men...
set rs = rs.NextRecordset
Ger...
ADODB.Recordset error '800a0cb3'
Current provider does not support returning multiple recordsets from a single execution.
/_mattias övrigt/temp/gb.asp, line 140
Jag är inte 100% med i matchen ännu... Vet inte riktigt vad det är för sport vi spelar om jag ska vara helt ärlig :)
toha Medlem sedan dec. 1999 707 inlägg Kommer inte ihåg hur det där fungerar exakt. Jag brukar köa med mina gamla funktioner. Kanske kan testa med dom? :o
Function ExecSql(ByVal sSql, ByVal sCS)
'response.write sSql & "<br>" & vbCrLf:response.flush
Dim oConn, oRec
Set oRec = Server.CreateObject("ADODB.Recordset")
oRec.CursorLocation = 3 ' adUseClient
oRec.Open sSql, sCS
Set oRec.ActiveConnection = Nothing
Set ExecSql = oRec
Set oRec = Nothing
End Function
Function ExecSqlConnected(ByVal sSql, ByVal sCS)
'response.write sSql : response.flush
Dim oRec
Set oRec = Server.CreateObject("ADODB.Recordset")
oRec.CursorLocation = 2 ' adUseServer
oRec.CursorType = 1 ' adOpenDynamic
oRec.LockType = 3 ' adLockOptimistic
oRec.Open sSql, sCS
Set ExecSqlConnected = oRec
Set oRec = Nothing
End Function
toha Medlem sedan dec. 1999 707 inlägg Oj, jag var för sent ute. :)
Böt ut "set rs = rs.NextRecordset" mot "rs.movenext" och det fungerar. Duger tillsvidare. För trött för att tänka nu :(