Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi ADS Table; nach Update SQL RecoNo/Bookmarks ungültig ? (https://www.delphipraxis.net/138304-ads-table%3B-nach-update-sql-recono-bookmarks-ungueltig.html)

DataCool 7. Aug 2009 08:19

Datenbank: ADS • Version: 9.0 • Zugriff über: native

ADS Table; nach Update SQL RecoNo/Bookmarks ungültig ?
 
Hi Leute,

ich habe ein kleines bis mittelschweres Problem:

Ich habe hier eine AdsTable die keinen PK hat(jaja keine Kommentare dazu, war vor meiner Zeit)
Die Daten der Tabelle werden ausgelesen und als Referenz auf den Datensatz werden RecNo(Variante 1) und/oder Bookmark(Variante 2) gespeichert.
Beim Klick auf einen Button werden die Daten des noch geöffnetten Tables via SQL geändert.
SQL-Code:
UPDATE xyztable set a='a', b='b' where a='1' and b='0'
^^ reines Beispiel

Danach wird der Table refreshed:
Delphi-Quellcode:
  xyzTable.disableControls;
  xyzTable.refresh;
  xyzTable.enableControls;
Wird jetzt in mein Anzeigeelement geklickt, sollen der Table auf den dazugehörigen Datensatz positioniert werden;
Dieses schlägt bei .GoTo(RecNo) und/oder .GotoBookmark(aBookmark) fehl;
Exception: Datensatz nicht gefunden!

Hat jemand eine warum ? Sind RecNo und Bookmarks nach einem Update nicht mehr gültig ?

Bin für jede Hilfe dankbar,

Greetz Data

omata 7. Aug 2009 12:18

Re: ADS Table; nach Update SQL RecoNo/Bookmarks ungültig ?
 
Warum machst du das Update über ein externes Statement? Ändere doch die Daten in der Tabelle direkt über eben deine Table-Komponente und mache danach ein POST. Dann benötigst du kein Refresh, die Daten sind aktuell und du musst nicht zum Datensatz springen, weil du noch drauf stehst.
Oder werden mit dem UPDATE eventuell mehrere Datensätze verändert?

DataCool 7. Aug 2009 12:42

Re: ADS Table; nach Update SQL RecoNo/Bookmarks ungültig ?
 
Hi,

es werden mehere Datensätze geändert, trotzdem wäre die Änderung direkt im Table möglich.
Werde das gleich mal testen, glaube aber das ich das auch schon versucht hatte;
Das Ändern geht in allen Varianten,
bloss stimmen danach die RecNo/Bookmarks nicht mehr, die ich zu den einzelnen Datensätzen in der visuellen Komponente gespeichert habe.
Beim Versuch darüber zu positionen gibts eine Exception(Datensatz nicht gefunden).

Greetz Data

joachimd 26. Aug 2009 12:19

Re: ADS Table; nach Update SQL RecoNo/Bookmarks ungültig ?
 
Zitat:

Zitat von DataCool
Hat jemand eine warum ? Sind RecNo und Bookmarks nach einem Update nicht mehr gültig ?

nicht zwingend. Bookmark und Recno funktionieren zuverlässig nur bei einem direkten Tabellenzugriff. Ich schlage vor, in das select-Statement die RowId mit aufzunehmen und dann darauf zu positionieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:57 Uhr.

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