/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Sortering i Delphi / Firebird
Fra : Ukendt


Dato : 21-06-09 20:38

Hej.

Jeg har en Delphi application med tilknyttet Firebird database.

Et felt i databasen er af typen varchar(10), da feltet både kan indeholde
tekst, tal eller en kombination heraf. Den bliver sorteret stigende.

Eksempel:

156
22
3632
Prøve
Test

I min verden - og i den verden, som applikationen skal afspejle - er det en
forkert sortering idet den korrekte sortering skal være:

22
156
3632
Prøve
Test

Kan det overhovedet lade sig gøre med et felt af typen varchar(10) eller er
der kun muligheden for førnævnte "fejlsortering" eller alternativt at
indskrænke mig til kun at lagre rene tal i feltet og ændre typen til
integer?



 
 
Uffe Kousgaard (21-06-2009)
Kommentar
Fra : Uffe Kousgaard


Dato : 21-06-09 21:18

"Michael Sørensen" <.> wrote in message
news:4a3e8c13$0$25200$ba624c82@nntp02.dk.telia.net...
>
> 22
> 156
> 3632
> Prøve
> Test
>
> Kan det overhovedet lade sig gøre med et felt af typen varchar(10)

Så længe det er et tekst-felt, så er det den normale sortering. Du kan evt.
tilføje nuller eller _ foran dine cifre, så vil sorteringen blive som du
ønsker, men det vil jo så give andre problemer.



jos (22-06-2009)
Kommentar
Fra : jos


Dato : 22-06-09 10:13

Uffe Kousgaard wrote:
> "Michael Sørensen" <.> wrote in message
> news:4a3e8c13$0$25200$ba624c82@nntp02.dk.telia.net...
>>
>> 22
>> 156
>> 3632
>> Prøve
>> Test
>>
>> Kan det overhovedet lade sig gøre med et felt af typen varchar(10)
>
> Så længe det er et tekst-felt, så er det den normale sortering. Du
> kan evt. tilføje nuller eller _ foran dine cifre, så vil sorteringen
> blive som du ønsker, men det vil jo så give andre problemer.
Nu er det [mange] år siden jeg programmerede, men kan du ikke lave et index
efter foranstillet nuller hvis asc ligger mellem 31 og 39?
pseudo:
if asc(nummer) >30 and asc(nummer) <39
then
index(værdi) val(nummer) = str(nummer format 000#)
else
indexværdi = nummer

finn



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste