[ASP] Sorteren op alfabet

Pagina: 1
Acties:
  • 26 views sinds 30-01-2008

  • trixx
  • Registratie: Maart 2001
  • Laatst online: 19-11 21:09

trixx

-CTU- SuiZide

Topicstarter
Ik heb een dynamisch menu die wordt gemaakt uit dmv een query uit een sql db. Maar de sortering vindt nu plaats op ID. En dat moet eigenlijk op Merknaam. Ik kom er niet uit hopelijk kunnen jullie me een duw in de juiste richting geven.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<%
Dim objDC, objRS
Set objDC = Server.CreateObject("ADODB.Connection")
objDC.ConnectionTimeout = 15
objDC.CommandTimeout = 30
objDC.Open "Provider=SQLOLEDB;Data Source=Server1;" _
    & "Initial Catalog=DB1;Connect Timeout=15;" _
    & "Network Library=dbmssocn;", "log", "wacht"
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open "voorbeeld", objDC, 0, 1
If Not objRS.EOF Then
    objRS.MoveFirst
    %>
    <form action="detail.asp" method="get">
    <select name="id">
        <option></option>
    <%
    Do While Not objRS.EOF
        %>
        <option value="<%= objRS.Fields("id") %>" selected><%= objRS.Fields("Merk")%></option>
        <%
    objRS.MoveNext
    Loop
    %>
    </select>
    <input type="submit" value="Submit" />
    </form>
    <%
End If
objRS.Close
Set objRS =  Nothing
objDC.Close
Set objDC = Nothing
%>

Life is like a box of chocolate, it makes you sick.


Verwijderd

Ik weet niet zoveel van ASP en ADO maar kun je geen sql query meegeven ipv de hele tabel te openen. Dan kun je in de query sorteren.

  • Haan
  • Registratie: Februari 2004
  • Laatst online: 01-12 18:44

Haan

dotnetter

Ik zat ook al in de code te zoeken naar een query, dan kan je met ORDER BY merknaam de boel sorteren.

[ Voor 4% gewijzigd door Haan op 08-05-2007 14:50 ]

Kater? Eerst water, de rest komt later


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Kan je niet in je query een order by toevoegen?

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Verwijderd

Had even niets te doen:

Kijk op http://www.aspnl.com/aspnl/nl/artikelen/pagingspeed.asp

Vervang regel 10 met volgende regels
ASP:
1
2
3
Dim strSQL
strSQL = "Select * from voorbeeld order by Merknaam"
objRS.Open strSQL, objDC, adOpenForwardOnly, adLockReadOnly, adCmdText

Het is overigens beter om geen select * te gebruiken maar de benodigde veldnamen te benoemen, anders worden er geen indexen gebruikt.

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
En (effe onder voorbehoud en uit de blote bol) volgens mij kun je een recordset ook nog sorteren nadat je 'm opgehaald hebt (niet zo efficiënt, maar het kan :Y) ):

code:
1
2
objRS.Open blah
objRS.Sort = "SomeField Asc"

Duik even de documentatie in en dan heb je het zo gevonden. Je moet overigens wel zorgen dat de Cursorlocation op client staat ;)

[ Voor 16% gewijzigd door RobIII op 08-05-2007 15:07 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • trixx
  • Registratie: Maart 2001
  • Laatst online: 19-11 21:09

trixx

-CTU- SuiZide

Topicstarter
Verwijderd schreef op dinsdag 08 mei 2007 @ 14:59:
Had even niets te doen:

Kijk op http://www.aspnl.com/aspnl/nl/artikelen/pagingspeed.asp

Vervang regel 10 met volgende regels
ASP:
1
2
3
Dim strSQL
strSQL = "Select * from voorbeeld order by Merknaam"
objRS.Open strSQL, objDC, adOpenForwardOnly, adLockReadOnly, adCmdText

Het is overigens beter om geen select * te gebruiken maar de benodigde veldnamen te benoemen, anders worden er geen indexen gebruikt.
Super het werkt.

Heb wel adOpenForwardOnly, adLockReadOnly, adCmdText moeten weglaten. Daardoor kwam de fout "Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another."

Nu werkt het verder prima.

Life is like a box of chocolate, it makes you sick.


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
trixx schreef op dinsdag 08 mei 2007 @ 15:08:
Heb wel adOpenForwardOnly, adLockReadOnly, adCmdText moeten weglaten. Daardoor kwam de fout "Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another."

Nu werkt het verder prima.
Nogal wiedes; waar heb je die constanten gedefinieerd? ;) Dan zul je ze of ergens in je code moeten declareren, of de 'standaard' adovbs.inc includen.

NOFI; maar het helpt wel als je weet waar je mee bezig bent en niet gewoon blind gaat zitten copy/pasten.

Daarnaast is dit eigenlijk nogal een 'wie fixed mijn code effe' topic en daar doen we hier niet aan. We verwachten toch wel wat meer inzet van jezelf voordat je een topic opent. Zie ook onze Programming Beleid Quickstart

[ Voor 31% gewijzigd door RobIII op 08-05-2007 15:13 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1

Dit topic is gesloten.