Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Query springt nicht zum ersten Datensatz (https://www.delphipraxis.net/199908-query-springt-nicht-zum-ersten-datensatz.html)

wjjw 1. Mär 2019 12:25

AW: Query springt nicht zum ersten Datensatz
 
Zitat:

Zitat von Jumpy (Beitrag 1426711)
Locate sollte eigentlich auch true zurückgeben, wenn der Datensatz gefunden wurde, so dass man auch schreiben kann:

if Query.Locate() then
Result:=Query.FieldByName;

Ich muss da Jumpy zustimmem. Locate funktioniert ohne Probleme, wenn man die Query richtig konfiguriert (alle Daten liest). Verwende auch UniDAC mit diversen Datenbanken ohne Probleme.

Jedoch wenn es sich um ca. 50 Einstellungen handelt würde ich jedoch auch keine Query immer beschäftigen.
Besser ich lese die Daten aus der DB und schreibe sie in eine Struktur.
if Einstellung.Farbe=rot then ...
Auch besser lesbar und schneller.

jobo 1. Mär 2019 13:58

AW: Query springt nicht zum ersten Datensatz
 
Zitat:

Zitat von wjjw (Beitrag 1426729)
Jedoch wenn es sich um ca. 50 Einstellungen handelt würde ich jedoch auch keine Query immer beschäftigen.
Besser ich lese die Daten aus der DB und schreibe sie in eine Struktur.
if Einstellung.Farbe=rot then ...
Auch besser lesbar und schneller.

Das würde ich auch so sehen. Eine ähnliche Lösung gab es ja offenbar zuvor. In dem Zusammenhang fänd ich noch spannend, warum überhaupt von Array auf Query umgestellt wurde.

rokli 1. Mär 2019 14:15

AW: Query springt nicht zum ersten Datensatz
 
Zitat:

Zitat von p80286 (Beitrag 1426726)
Das halte ich für Sparen am falschen Ende. Meiner Meinung nach sollte der Ablauf ungefähr so sein:
[CODE]
Der vom TE gewählte Weg ist erst bei einer großen Menge Parametern und/oder einer extrem langsamen DB - Anbindung effizenter.
Vor allem der Umgang mit fehlenden Werten ist im zweiten Fall aufwendiger, da es mindestens zwei Orte (DB und Ergebnismenge) gibt an denen geprüft werden muß ob die gewünschten Werte vorhanden sind.
Und das gerne genommene
SQL-Code:
Select * from...
kann im ungünstigen Falle so viel überflüssige Daten liefern, daß ein möglicher Performancevorteil aufgezehrt wird.

Gruß
K-H

Mit dem Sparen am falschen Ende hast Du ja soooo recht! Was ist denn wenn der Inhalt der DB von einer anderen Person/Software geändert wird? Diese Änderung würde von der laufenden Anwendung niemals bemerkt, es sei denn, der User startet sein Programm zwischendurch (aber in welchem Intervall) immer wieder neu.

Das mit dem SELECT * FROM ... stimmt natürlich, ist aber die Entscheidung des Programmierers, ob er es langsam oder schnell gestaltet.

Ykcim 1. Mär 2019 14:25

AW: Query springt nicht zum ersten Datensatz
 
Zitat:

In dem Zusammenhang fänd ich noch spannend, warum überhaupt von Array auf Query umgestellt wurde.
Ich habe eine Klasse in einer eigenen Unit definiert, in der ich alle Query's ausführe. Diese Klasse ist in den Units, wo sie gebraucht wird verfügbar und damit dann auch die Daten. Diese Klasse hatte ich bis jetzt noch nicht. Zwar hätte ich das Array dort auch definieren können. Aber so fand ich es charmanter... Geschmackssache...


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:50 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz