Avatar billede ogik Nybegynder
06. november 2000 - 20:22 Der er 8 kommentarer og
1 løsning

Alfabetisk orden i tabelen

Hej alle sammen!
hjælp mig lige:

jeg har lavet tre DBEDits og
DE hedder: 1= Kunstner 2= Titel 3=nummer:
og jeg vil gerne have dem ind i tabelen MEN
felt 3 er mit KeyField! DVS den sortere efter den! Men jeg vil gerne have at tabelen sortere det efter Felt1..
hjælp mig please!
Avatar billede pellelil Nybegynder
06. november 2000 - 20:24 #1
Brug en TQuery, så kan du med \"ORDER BY\" selv bestemme hvordan dine data skal sorteres uafhængig af hvilke index du har
Avatar billede ogik Nybegynder
06. november 2000 - 20:28 #2
Kan du ikke hjælpe mig lidt mere?jeg er kun \"god\" til Paradox 7 osv..
Avatar billede pellelil Nybegynder
06. november 2000 - 20:49 #3
I stedet for en TTable bruger du bare en TQuery. På denne måde har du adgang til SQL (Structured Query Language) hvor den kan skrive din forespørgsel,  hvilket du burde vide hvis du er \"god\" til Paradox:
<SNIP>
SELECT * FROM TableNavn WHERE Felt1=10 ORDER BY felt1, felt2
</SNIP>

Hvis du ikke er så stærk til SQL så er der her en kort beskrivelse. Stjernen \"*\" efter select angiver at du vil have alle felter fra tabellen, men alternativt kan du også skrive navnene (adskildt med komma\'er). Jeg medtog en \"WHERE\" kommando som bruges til at filtrere hvilke poster du vil have og hvilke du ikke vil have, i dette tilfælde vælger vi kun de poster hvor Felt1\'s værdi er \"10\". Sidst og ikke mindst er \"ORDER BY\" delem som vælger at sorteringen skal foretages på baggrund af felt1, felt2.

Jeg kender af indlysende årsager ikke dine felt navne, så derfor har jeg brugt \"felt1\" og \"felt2\", du skal således i stedet bruges de navne som du har givet dine felter.
Avatar billede tknudsen Nybegynder
07. november 2000 - 08:23 #4
pellelil >> jeg så \'dig\' i fjerneren på en landsdækkende kanal i weekenden. Det var i frob.m. en slags preview af eksperten.dk. Der var zoomet ind på det øverste højre hjørne hvor der var et (mere eller mindre) sigende citat og så også dit nick.

:-)
Avatar billede pellelil Nybegynder
07. november 2000 - 08:31 #5
tknudsen> Jeg så det desværre ikke selv, men min nevø gjorde mig opmærksom på det. Jeg sidder nu bare herhjemme og venter på at honorar-kronerne skal vælte ind af døren :-)
Avatar billede hatecaps Nybegynder
07. november 2000 - 08:35 #6
pellelil >> det glæder mig for dig. nu har du endeligt noget at lave mens du hænger derhjemme (vente på de honorar-kroner, altså ;-)
Avatar billede delphi Nybegynder
07. november 2000 - 09:26 #7
Det er nu ikke nødvendigt at ty til TQuery for at får sorteret visningen af sin tabel, selvom jeg nu nok også selv ville foretrække SQL - det er bare ikke altid så nemt, hvis man nu har en stor kørende applikation eller hvis man ikke lige har lyst til at skulle sætte sig ind i endnu en ny teknologi.

Løsningen i forbindelse med TTables er at bruge propertien IndexFieldName eller IndexName. Man har frit valg med hensyn til hvilken man vil bruge, men, man kan dog kun bruge den en af dem ad gangen, idet den ene sletter den anden når den sættes.

Inden man kan bruge TTables Index properties, skal tabellen dog være forberedt til det: Der skal være oprettet \"secondary indexes\" til alle de felter der skal kunne sorteres efter.  Lad nu være med at gå amok ved at oprete et secondert index til alle tabellens kolonner, idet et index kræver noget vedligehold, dvs. CPU tid, af database systemet hver gang der skal tilføjes eller fjernes en post i tabellen.

Som eksempel bruger jeg her tabellen customer.db der som standard er oprettet under DBDEMOS aliaset.
Start med at gå ind i Database Desktoppen og åben tabellen her.
I Table menuen vælges restructure.  I Table Properties comboboxen vælges secondary indexes.  som du kan se findes der her et index der hedder ByCompany.  Som standard navngir man et index med By efterfulgt af feltnavnet/ene som indexet peger på.

Prøv at oprette et nyt index som du kalder ByState. (Tryk på Define, vælg state osv. osv.)

Luk derefter Database Desktoppen og gå til en ny application i Delphi. Placer en TTable (bundet til ovenstående tabel) og en TDataSource og en TDBGrid. Bind hele dynen sammen og sæt TTable\'ens Active property til True (der skulle gerne være data i din Grid nu, ellers er der sket en fejl).

I Object Inspectoren kan du nu ændre på din TTables IndexFieldName eller IndexName properties og du ser at din grid bliver sorteret med det samme.
Bemærk iøvrigt at du har tre valg i IndexFieldName propertien, idet du her vil kunne se tabellens primary index (CustNo).  I IndexName kan du kun se de to secondary indexes, men hvis du sletter indholdet i IndexName propertien, vil tabellens primary index blive anvendt som default.

Delphi
Avatar billede delphi Nybegynder
07. november 2000 - 09:29 #8
Dine properties kan se\'følig også ændres runtime fra din kode, fx:

Table1.IndexName := \'ByState\';

Delphi
Avatar billede kode Nybegynder
07. november 2000 - 17:33 #9
brug tabellens proberties! marker tabellen->skriv i \"IndexFieldName\" hvad det er for en attribut du vil følge.. Det skulle gøre det :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester