Delphi-PRAXiS
Seite 1 von 2  1 2   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   insert oder append (https://www.delphipraxis.net/122446-insert-oder-append.html)

khh 16. Okt 2008 10:38

Datenbank: mysql • Version: 5 • Zugriff über: ZEOS

insert oder append
 
Hallo zusammen,
wenn ich einen ds in einer Datenmenge einfüge, indem ich ZQuery1.insert setze wird mir, wenn ich das recht sehe, der Ds vor den aktuellen Satz eingefügt.
Diesen Status kann ich mit
if Zquery1.state = dsInsert then
abfragen.

Wenn ich den DS an die Datenmenge anfügen möchte, so dass er am Schluss steht, kann ich ZQuery1.append benutzen.
Leider gibt es kein dsAppend -status der abzufragen wäre.
Welchen Status kann ich in diesem Falle abfragen?

Ich weiss, dass die Datenmenge an sich eh ungeordnet ist, also eigentlich egal ist, ob append oder insert.
Nur wird mit insert der neue DS auch im DBGrid an der aktuellen Stelle angezeigt, und das möchte ich durch append verhindern.

Welche Lösungsmöglichkeiten sind denkbar?

danke gruss KH

hoika 16. Okt 2008 10:50

Re: insert oder append
 
Hallo,

wie du schon richtig erkannt hast,
spielt es keine Rolle, weil die Daten in einer SQL-DB
unsortiert sind (Ausnahme: clustered index).

Die richtige Stelle im DBGrid bekommst du nach dem Insert
durch Sortierung mit Order By.


Heiko

khh 16. Okt 2008 11:23

Re: insert oder append
 
Zitat:

Zitat von hoika
Hallo,



Die richtige Stelle im DBGrid bekommst du nach dem Insert
durch Sortierung mit Order By.


Heiko

das ist richtig, nur muss ich dazu die Datenmenge neu einlesen.
Sofort nach dem Einfügen des neuen Satzes steht dieser eben ungeordnet im Grid und das wollte ich ( durch append) verhindern.

hoika 16. Okt 2008 11:53

Re: insert oder append
 
Hallo,

deshalb benutze ich kein TDBGrid.


Heiko

khh 16. Okt 2008 12:11

Re: insert oder append
 
Zitat:

Zitat von hoika
Hallo,

deshalb benutze ich kein TDBGrid.


Heiko

und was benutzt du statt dessen ?

mkinzler 16. Okt 2008 12:17

Re: insert oder append
 
-StringGrid
-ListView
-Virtual TreeView
...

khh 16. Okt 2008 12:43

Re: insert oder append
 
Zitat:

Zitat von mkinzler
-StringGrid
-ListView
-Virtual TreeView
...

danke, werd ich mir mal näher ansehen

NoGAD 2. Mai 2021 15:20

AW: Re: insert oder append
 
Zitat:

Zitat von mkinzler (Beitrag 836466)
-StringGrid
-ListView
-Virtual TreeView
...

Hallo Markus,

dieser Thread ist sehr, sehr alt. Aber ist das immer noch so, dass Du keine DBGrids benutzt?

Wenn Du jetzt eine große Datenmenge hast, die abgebildet werden soll, wie funktioniert das in einem TStringGrid?

LG Mathias

mkinzler 3. Mai 2021 09:03

AW: Re: insert oder append
 
Zitat:

Zitat von NoGAD (Beitrag 1488431)

Hallo Markus,

dieser Thread ist sehr, sehr alt. Aber ist das immer noch so, dass Du keine DBGrids benutzt?

Wenn Du jetzt eine große Datenmenge hast, die abgebildet werden soll, wie funktioniert das in einem TStringGrid?

LG Mathias

Die Aussage kam nicht von mir, sondern von Hoika.

Man kann hierfür alternative Bindungsmethoden (Live Bindings, MVVM o.ä.) verwenden oder man verwendet den virtuellen Modus des VST (und anderen Komponenten) und lädt dynamisch die benötigten Werte nach.

himitsu 3. Mai 2021 09:12

AW: insert oder append
 
Insert und Append beziehen sich auch nur auf's DataSet, wo eingefügt wird.
Die Reihenfolge in der Datenbank oder das OrderBy vom Select sind irrelevant. (wo die Datenbank das INSERT ablegt, ist deren Sache)

Aber mit einem "ordentlichen" Grid ist das eh egal, da die selber nochmal eine Sortierung können, unabhängig von DataSet oder Select,
wo dann neue Datensätze in der Anzeige richtig wie gewünscht einsortiert werden können, bevor sie in der DB ankommen. (und womöglich per RefreshAfterPost nochmal "richtig" aus'm Select geladen)


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:47 Uhr.
Seite 1 von 2  1 2   

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