Autor |
Beitrag |
CenBells
      
Beiträge: 1547
Win 7
Delphi XE5 Pro
|
Verfasst: Fr 27.09.02 00:23
Hallo leute
ich habe eine übersicht über alle vorhandenen Datensätze die auf einem ibdataset basiert und die eine eigene transaktion besitzt.
Nun füge ich im context einer zweiten transaction einen datensatz in die tabelle ein und mache ein refresh auf die daten. Dann bekomme ich aber den neuen datensatz nicht angezeigt.
Die einfüge Transaction mach ein commit zum Beenden und das klappt auch einwandfrei. In der Lese-Transaction habe ich read_commited eingestellt.
Wenn ich die Lese tabelle schließe und wieder öffne geht es aber. Nur das möchte ich nicht zwingend, da dann ja ewig viele daten beim einfügen neu geladen werden. (ca 6000 - 10000 datensätze)
Kann mir wer helfen?
Gruß
Ken
|
|
LCS
      
Beiträge: 1305
Erhaltene Danke: 1
WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
|
Verfasst: Fr 27.09.02 07:39
Hi
das Problem liegt in der Implementierung von Refresh in TDataSet. Es tritt immer dann auf wenn Daten von einer SQL-Datenbank abgerufen werden und lässt sich auch nicht umgehen.
Die einzige Lösung ist das Schliessen und Öffnen deiner ersten Abfrage. Und hier würde ich auch versuchen die Menge der Daten einzugrenzen um das Ganze zu beschleunigen.
Gruss Lothar
_________________ Der BH ist für die Brust, der Plan ist für'n Ar...
|
|
CenBells 
      
Beiträge: 1547
Win 7
Delphi XE5 Pro
|
Verfasst: Fr 27.09.02 09:18
Guten Morgen. *gähn*
Danke für die Antwort Lothar. Ok, dann werde ich das halt machen.
Das mit dem eingrenzen ist so eine sache.
Aber egal. wenn ich die Daten nun nicht in einem DB-Grid anzeige, sondern dem user eine eingabemaske zur verfügung stelle, wo er dann immer nur mit next und prior durchscrollen kann, dann werden doch nicht sofort alle daten angefordert, oder?
gruß
KEn
|
|
LCS
      
Beiträge: 1305
Erhaltene Danke: 1
WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
|
Verfasst: Fr 27.09.02 10:17
Hi
vollkommen korrekt. Bei so grossen Datenmengen ist der Verzicht auf DBGrid die beste Lösung. Leider sind die Anwender da meist anderer Meinung
Gruss Lothar
_________________ Der BH ist für die Brust, der Plan ist für'n Ar...
|
|
CenBells 
      
Beiträge: 1547
Win 7
Delphi XE5 Pro
|
Verfasst: Fr 27.09.02 11:30
Danke für den hinweis.
Ich habe das jetzt umgestellt, kann auch durch die daten mittels next und prior scrollen.
Aber wenn ich nun durch eine andere Transaction einen datensatz einfüge, kann ich den trotzdem nicht annavigieren. Die anzahl der datensätze stimmt zwar, aber an der stelle des neuen datensatzes ist jetzt nicht der neu eingefügt, sondern befindet sich die kopie eines anderen.
Was mache ich denn jetzt falsch???
Gruß
Ken
|
|
hansa
      
Beiträge: 3079
Erhaltene Danke: 9
|
Verfasst: Fr 27.09.02 11:47
Hallo,
kurze Zwischenfrage : wenn ich mit WHERE die Datenmenge einkreise, dann würden doch in dem Grid nur die gewünschten Werte drin stehen.
Sollte der Parameter für where indiziert werden oder geht es auch ohne Index, bzw. wie wirkt sich das ganze jeweils aus ?
Gruß
Hansa
|
|
LCS
      
Beiträge: 1305
Erhaltene Danke: 1
WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
|
Verfasst: Fr 27.09.02 12:03
Hi
auch wenn du mittels navigator auf die Daten zugreifst, kommst du um das öffnen und schliessen der Datenmenge nicht drumrum. Und dann sollte auch dein Datensatz vorhanden sein.
Gruss Lothar
_________________ Der BH ist für die Brust, der Plan ist für'n Ar...
|
|
CenBells 
      
Beiträge: 1547
Win 7
Delphi XE5 Pro
|
Verfasst: Fr 27.09.02 14:26
Und wie sieht es aus, wenn ich nur mit einem dataset arbeite und dann darauf ein insert aufrufe? sind die daten nach dem post in dem dataset verfügbar?
´Wirklich gutes design wäre das wohl nicht, oder? *g*
Gruß
Ken
|
|
LCS
      
Beiträge: 1305
Erhaltene Danke: 1
WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
|
Verfasst: Fr 27.09.02 14:29
Zitat: |
Wirklich gutes design wäre das wohl nicht, oder?
|
Ne, nicht wirklich
Aber du könntest die beiden Operationen innerhalb einer Transaktion ablaufen lassen.
Gruss Lothar
_________________ Der BH ist für die Brust, der Plan ist für'n Ar...
|
|
CenBells 
      
Beiträge: 1547
Win 7
Delphi XE5 Pro
|
Verfasst: Fr 27.09.02 14:31
wäre das dann besser?
aber, ich glaube, das hat nicht geholfen. Ich werde nochmal testen
ansonsten mache ich es mit close open
Danke und nochmal gruß
Ken
|
|