Announcement

Collapse
No announcement yet.

Paradox, Index, Reihenfolge

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Paradox, Index, Reihenfolge

    Hallo,<br>
    wie kann ich bei <b>Paradox</b>-Tabellen (Datenbankoberfläche) einen Index
    anlegen <br>
    der folgende <b>order by</b> Reihenfolge beinhalten soll<br>
    <br>
    Tabelle Zeiten<br>
    &nbsp;&nbsp;&nbsp; Zeit<br>
    &nbsp;&nbsp;&nbsp; Mitarbeiter<br>
    &nbsp;&nbsp;&nbsp; ...<br>
    Index 1 ala : select * from Zeiten order by Mitarbeiter, Zeit desc<br>
    Index 2 ala : select * from Zeiten order by Zeit desc, Mitarbeiter<br>
    <br>
    Ich kann leider keine TQuery verwenden sondern nur TTable<br>
    In der Datenbankoberfläche kann ich nur Reihenfolgen wie <br>
    &nbsp;&nbsp;&nbsp; order by Mitarbeiter desc, Zeit desc<br>
    &nbsp;&nbsp;&nbsp; order by Mitarbeiter, Zeit<br>
    &nbsp;&nbsp;&nbsp; order by Zeit desc, Mitarbeiter desc<br>
    &nbsp;&nbsp;&nbsp; order by Zeit , Mitarbeiter <br>
    abbilden, aber keine Mischform <br>
    <br>
    Gibt's da noch einen anderen Weg ?<br>
    <br>
    Gruss und Dank<br>
    &nbsp;&nbsp;&nbsp; Dietmar<br>

  • #2
    procedure Add(const Name, Fields: String; Options: TIndexOptions);<br><br>
    Beispiel:<br>
    Table1.AddIndex('NewIndex', 'Mitarbeiter;Zeit', [ixcaseinsensitve]);<br><br>
    Index setzen: <br>
    Table1.Indexname:= 'NewIndex';<br>
    nicht vergessen den Index später wieder auf den Primary Key oder anderen Key zu setzen.<br>

    siehe auch setrangestart,setrangeend,applyrange<br>
    zum setzen von Filtern!!
    <br>
    ausführliches in der Borland Hilfe unter Eigenschaften von TTable-> Index o. IndexDefs

    Viel Erfolg
    MfG Andreas

    MfG Andrea

    Comment


    • #3
      Hallo Andreas,<br>
      vielen Dank für die schnelle Hilfe, jedoch erzeugt ein Table.AddIndex einen
      gemeinsamen zusammen gesetzten Index.<br>
      D.h.&nbsp;&nbsp;&nbsp; Mitarbeiter ist aufsteigend und Zeit ist aufsteigend oder<br>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp; Mitarbeiter ist
      absteigend und Zeit ist absteigend <br>
      ich benötige aber einen Index mit<br>
      &nbsp;&nbsp;&nbsp; Mitarbeiter aufsteigend und Zeit absteigend<br>
      sowie einen weiteren mit <br>
      &nbsp;&nbsp;&nbsp; Zeit absteigend und Mitarbeiter aufsteigend<br>
      <br>
      Gruss und Dank<br>
      &nbsp;&nbsp;&nbsp; Dietma

      Comment


      • #4
        Deshalb schrieb ich <b> siehe setrange...</b><br>
        Erst Key setzen dann filtern

        ixDescending Der Index sortiert absteigend (wird nicht für alle Tabellentypen verwendet
        aber für Paradox).

        MfG Andrea

        Comment


        • #5
          Hallo Dietmar,<p>

          Paradox ist dazu nicht in der Lage.<br>
          Alternativ kannst du ja den Index nur für ein Feld anlegen, und über ne Query sortieren. <br>
          Dann wird zumindestens der 1 Index benutzt.
          <p>
          Heik

          Comment


          • #6
            Hallo,<br>
            vielen Dank für Eure Anworten.<br>
            @Andreas,<br>
            leider kann ich Deine Variante nicht verwenden, da ich im DBGrid <b>alle</b>
            Daten darstellen möchte. Deswegen schweitert die kombinierte Filter-Methode.<br>
            <br>
            @Heiko,<br>
            &gt;Paradox ist dazu nicht in der Lage.<br>
            ich denke die BDE, mit Flat-Files und dem abgespeckten local-SQL ist dazu nicht
            in der Lage.<br>
            &gt;Dann wird zumindestens der 1 Index benutzt.<br>
            das kann man von einem SQL-Server annehmen, aber nicht bei DBase oder Paradox<br>
            <br>
            habe es auch noch über einen CREATE INDEX nochmals probiert - fehlgeschlagen<br>
            naja, hab alles umgebaut und nun doch mit einer TQuery realisiert.<br>
            <br>
            Gruesse<br>
            &nbsp;&nbsp;&nbsp; Dietma

            Comment


            • #7
              Wenn du TTable verwendest versuche doch mal folgendes:<br>
              TQuery(meineTable.dataset).sql.add:=' SQL-Anweisung';<br>
              TQuery(meineTable.dataset).execsql;<br>
              Einfach Casten , so brauchst du deine Table
              nicht extra umstellen.<br><br>

              MfG Andreas<br&gt

              Comment

              Working...
              X