Order By problem

ASP

12 svar · 416 visningar · startad av JaktJanne

Medlem sedan feb. 20001 507 inlägg
Trådstart#1

Har följande kod i början på sidan:

Dim val
If Request.Querystring("sort") = "" Then
val = "ort"
ELSE
val = Request.Querystring("sort")
End If

och när jag skall använda variabeln val så blir det inget.

Visa = "SELECT * FROM [aterfors] ORDER BY '%"&val&"%';"

Räcker det md kod :q för att klargöra vad som blir fel.

Medlem sedan juni 200032 967 inlägg
#2

du skall inte ha procenttecken eller apostrofer med i order by, utan endast kolumnnamnet.

select * from tblBlah order by fldBlah asc

mvh,

Medlem sedan feb. 20001 507 inlägg
#3

Hjälper ej :)
Det blir ingen Order By alls utan datan sorteras efter ID som jag inte är intresserad av i detta fallet

Felmeddelande "för få parametrar..."

Medlem sedan juni 200032 967 inlägg
#4

vad gör man när sql-frågor inte fungerar?

jo, man:

  1. kollar så att fält/tabellnamn verkligen stämmer, om de gör det,

  2. skriver ut sql-frågan med response.write innan execute och ger till sina vänner på webforum som kan se vad som är fel. :)

Medlem sedan feb. 20001 507 inlägg
#5

På fråga 1 svarar jag , det är rätt.
På fråga 2 så hittade jag felet :), tänkte aldrig på att göra det men det lösta sig till slut.
Det skulle vara

Visa = "SELECT * FROM [aterfors] ORDER BY "&val&";"

Tackar

Medlem sedan okt. 20001 558 inlägg
#6

Varför ett ; på slutet av SQL-satsen?

Medlem sedan aug. 2000234 inlägg
#7

I SQL standarden ska det vara ett ; i slutet på uttrycket. Fungerar oftast utan.

I stället för att:
If Request.QueryString("sort") = "" Then

använd:
If Len(Request.QueryString) < 0 Then

Löser iofs inte ditt problem med SQL frågan, men det går snabbare att göra så. Kanske tjänar du en microsekund på att göra det ;)

Medlem sedan feb. 20001 507 inlägg
#8

Funkar utan ;
Vad står Len för egentligen, är det bättre eller är det en smaksak om man bara vinner en bråkdel av en sekund :q

Medlem sedan dec. 200012 464 inlägg
#9

I SQL standarden ska det vara ett ; i slutet på uttrycket.

Nej, det skall det inte. ; används enbart som avgränsare mellan statement, inte som avslutning enligt ISO/ANSI sql.

Len = antal tecken i en sträng.

Medlem sedan feb. 20001 507 inlägg
#10

Aha, skall försöka lägga det på minnet :e

Medlem sedan dec. 19998 577 inlägg
#11

Koppla det till ordet det är en förkortning på... :)

Len = Length

Medlem sedan okt. 20005 273 inlägg
#12

för att spara två tangent tryckningar så behöver man bara skriva:

If Len(Request.QueryString) then

istället för

If Len(Request.QueryString) < 0 Then

:)

Medlem sedan juni 200032 967 inlägg
#13

... som ju dock är typ motsatsen...

501 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
375 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)