06. november 2000 - 20:22Der 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!
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.
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.
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 :-)
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.
brug tabellens proberties! marker tabellen->skriv i \"IndexFieldName\" hvad det er for en attribut du vil følge.. Det skulle gøre det :)
Synes godt om
Ny brugerNybegynder
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.