Datenbank (mySQL) "refreshen"
-
Hi,
erstmal wir kann man eine Datenbank automatisch refreshen? Bis jetzt mach ichs mit nen Timer und dann ->Refresh();. Ist allerdings keine gute Möglichkeit!Und dann hab ich noch ein Problem:
Der User kann bei mir in einem DBGrid einen Datensatz auswählen! Beim refreshen springt der Cursor aber immer auf den 1. Datensatz! Wie kann ich das verhindern?Hab schon das hier versucht. Klappt allerdings nicht?
TField *test; test = DBGrid1->SelectedField; ZMySqlTable1->Refresh(); // Zeo-Komponente für mySQL Zugriff DBGrid1->SelectedField = test;
Was mache ich falsch?
Danke
Alexander Sulfrian
-
hi, wenn du die db refresht ändert sich ja deine ergebnismenge, um den vorigen datensatz wieder zu markieren, wird dir wohl nichts weiter übrigbleiben, als eine weitere abfrage zu schreiben, die dir den markierten datensatz aus deiner neuen ergebnismenge raussucht.
-
was hab ich da nur für quatsch erzählt?
int x = db->FieldByName("schluesselfeld")->AsInteger; db->Refresh; while(x != db->FieldByName("schluesselfeld")->AsInteger) db->Next();
nicht sehr schön, aber wirksam
[ Dieser Beitrag wurde am 11.02.2003 um 09:02 Uhr von DBler editiert. ]
-
Hi,
@Alexander Sulfrian
erstmal wir kann man eine Datenbank automatisch refreshen? Bis jetzt mach ichs mit nen Timer und dann ->Refresh();oh....nou
besser ist UDP, broadcast address, port, method ReceiveBuffer(...) [ReceiveString(...)]@DBler
*```cpp
int x = db->FieldByName("schluesselfeld")->AsInteger;
db->Refresh;
while(x != db->FieldByName("schluesselfeld")->AsInteger)
db->Next();:confused: ```cpp int x = db->FieldByName("schluesselfeld")->AsInteger; db->Refresh(); if (!db->Locate("schluesselfeld", x, TLocateOptions() << loCaseInsensitive)) db->First();
-
@blazek jaroslav
viel besser
-
Hi,
also der Vorschlag mit Locate funktioniert ganz gut! Aber Wie kann ich sicherstellen das der Datansatz der vor dem Refreshen oben war (oder der nächste der noch da ist) auch nach dem aktuallisieren wieder oben ist?Danke
Alexander Sulfrian