Announcement

Collapse
No announcement yet.

Defaultindex ist kein Primaryindex?! Setrange klappt nicht

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

  • Defaultindex ist kein Primaryindex?! Setrange klappt nicht

    Hi,

    habe folgenden Effekt bei der Umstellung von Paradox auf Interbase 6.01 Dialoc 3 mit BDE 5.11 (muss ich leider verwenden) und Delphi 5. Bei einem TTable object steht die Eigenschaft Defaultindex auf TRUE. Ich war der Meinung, dass wenn ich jetzt einen Sertrange setze, dieser auch auf den Primary Key der Interbase Tabelle ausgeführt wird. Dies führt bei mir aber zu massiven Fehlern. Wenn ich aber den Indexname auf den Primary Key setze (Indexname:=rdb$Primary4) klappt alles Prima. Ist das ein Bug des Property Defaultindex oder habe ich dort etwas falsch verstanden. Ich habe zu diesem Punkt auch nichts im Forum gefunden. Ein Tipp wäre ich super.

  • #2
    Hallo,

    der Grund für dieses Problem liegt darin, dass die grundlegenden prinzipiellen Unterschiede zwischen der <b>datensatzorientierten</b> Paradox-Datenbank und der <b>mengenorientierten</b> SQL-Datenbank ignoriert werden. Im Fall einer SQL-Datenbank entscheidet ausschliesslich der Server, ob und wann ein Index verwendet wird (denn nicht in jedem Fall beschleunigt ein Index die Suche nach einem Datensatz). Wenn es jedoch darum geht, die Sortierreihenfolge in der Anzeige zu ändern, muss bei der SELECT-Abfrage (TQuery) die <b>ORDER BY</b>-Anweisung verwendet werden.

    Entscheidend ist, wass "hinten" beim InterBase ankommt. Ich würde daher ständig mit dem SQL-Monitor von Delphi arbeiten, um die von der VCL automatisch generierten SQL-Anweisungen zu kontrollieren. Bei einer mengenorientierten SQL-Datenbank (InterBase) lässt sich TTable nur unter bestimmten Bedingungen (Filter-Bedingung, die automatisch eine WHERE-Einschränkung für die SELECT-Abfrage ergibt) effektiv einsetzen, daher ist in der Regel TQuery üblicher. Da man bei TQuery die SELECT-Abfrage eigenständig formulieren muss, steht hier die volle Leistungsfähigkeit der Datenbankabfragesprache SQL zur Verfügung

    Comment

    Working...
    X