Announcement

Collapse
No announcement yet.

mit Delphi bei InterBase Datensatz markieren

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

  • mit Delphi bei InterBase Datensatz markieren

    Hallo,<br>
    <br>
    Warum ist die Funktion locate so langsam? Es scheint mir, dass sie auf Client-Seite die Daten durchsucht. Ist dass so?<br>
    Gibt es eine andere Möglichkeit effizient in einem großen Datensatz eine Query zu durchsuchen und einen Datensatz zu markieren?<br>
    <br>
    Vielen Dank<br>
    Rolf

  • #2
    Hallo,<br>
    Interbase als SQL-server ist Mengenorientiert und nicht Datensatz-orientiert.<br> Daraus ergeben sich viele umstellungen, wenn man vorher auf desktop-datenbanken gearbeitet hat.<br>
    Locate ist deshalb so langsam, da es das komplette result-set der query auf den client schaufelt, und danach selbst den passenden datensatz heraussucht.<br>
    Da SQL-server nicht datensatzorientiert arbeiten, kann man auch nicht einfach so einen Datensatz markieren, dies geschieht nur auf dem Client, ohne dass der server etwas davon mitbekommt.<br>
    Um einen Datensatz zu suchen, solltest du where-clauses in deiner Query benutzen. Diese arbeiten sehr schnell, liefern dir dann aber auch nur einen einzigen datensatz zurück.<br>
    Die beste alternative ist natürlich die arbeit mit den IBObjects (unter http://www.ibobjects.com ). Durch eine ganz andere architektur als die TDatasets der VCL hat der autor es geschafft, inkrementelle suchen auf dem server ausführen zu lassen, was einen Geschwindigkeitsvorteil von einigen 100% mit sich bringt. Insgesamt gesehen hängt IBO die IBX-Komponenten um längen ab.<br>
    Ich empfehle jedem, der mit interbase arbeitet, auch IBObjects zu benutzten. Im Client/Server bereich wirst du nirgends so ein schnelles Duo mehr finden.<br> CU, Nic

    Comment

    Working...
    X