Toon posts:

[asp] movelast in access db?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil een schijnbaar eenvoudige asp-access website maken met een manier om nieuws te posten.
Dit nieuws moet dan in omgekeerde volgorde van invoegen getoond worden. Dus het nieuwste vanboven en ouder meer naar onder.
Omgekeerd gaat dit perfect met :
code:
1
2
3
4
5
6
<%
do while Not rs.eof 
Response.Write (rs("hierNieuws")) 
rslog.MoveNext 
Loop    
%>


maar ik wil dus het omgekeerde.

Als ik probeer met rs.movelast krijg ik dit:
Soort fout:
Microsoft JET Database Engine (0x80040E24)
De rijenset ondersteunt achterwaarts ophalen niet.
Wat niet zo positief is.

als ik het probeer met dit: (om alleen het laatste bericht te tonen )
code:
1
2
3
4
5
6
7
<%
do until rslog.eof 
rslog.MoveNext 
Loop 
rslog.moveprevious 
Response.Write (rs("hierNieuws")) 
%>

krijg ik dit
Soort fout:
ADODB.Recordset (0x800A0C93)
De bewerking is in deze context niet toegestaan.
Dit is ook niet erg positief

Ik heb nu al ongeveer al 12 keer dit gelzen, maar het heeft niet veel geholpen.

Ik heb ook al een andere db-driver geprobeerd nl de

DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db.mdb")

en

"Provider=Microsoft.Jet.OLEDB.3.51; Data Source=" & Server.MapPath("db.mdb)

en

Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("db.mdb")

hierboven gebruikte ik de laatste
Het is een access 2002 database

Dus mijn vraag aan u is: Hoe moet het wel ?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 10:27

gorgi_19

Kruimeltjes zijn weer op :9

Je hebt nu als locking type Forward, read only waarschijnlijk gekozen bij het vullen van je recordset.

Uitleg: Je hebt gekozen dat je recordset alleen maar VOORWAARTS mag lezen. (move previous kan dus niet)

Ik weet niet precies de goede locktypes uit mijn hoofd, maar je moet deze
rs.open "select * from mytable order by firstfield desc", "", adOpenKeyset, adLockOptimistic
vervangen. Volgens mij zit hier de fout; je kan nu in ieder geval een stukje gerichter zoeken.. :P
edit:

MrX is wat duidelijker als ik... :P

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Als je niet expliciet een cursor type meegeeft bij het openen van een RecordSet is het type adForwardOnly, en dat cursor type ondersteunt alleen .MoveNext. Als je .MoveLast, .MovePrevious en .MoveFirst wil gebruiken moet je een ander type kiezen.

Zie http://www.w3schools.com/ado/prop_rs_cursortype.asp

Enjoy :)

Verwijderd

Je kunt het natuurlijk ook zo laten weergeven:
ORDER BY Veldnaam DESC;
Dan krijg je vanzelf de nieuwste bovenaan :)

Verwijderd

Topicstarter
Ok dit is wat ik moest weten. Bedankt
tis dus die dak nodig had:
adOpenDynamic
value = 2
Uses a dynamic cursor. Additions, changes, and deletions by other users are visible, and all types of movement through the Recordset are allowed, except for bookmarks, if the provider doesn't support them.

En het werkt :)

[ Voor 0% gewijzigd door Verwijderd op 17-10-2002 18:17 . Reden: nog ff bijgezet dat het werkt ]