Trådstart 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
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?
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