![]() |
Problem mit ADOTable und Refresh
Immer wenn ich mit das aufrufe (Steht in TADOTable.AfterPost), also nen Datensatz poste
Delphi-Quellcode:
Krieg ich ne Fehlermeldung:
TADOTable.Refresh;
Code:
Liegt das an der TADOTable? Oder muss ich noch was beachten
Nicht genügend Schlüsselfeldinformationen zum Aktualisieren
|
Re: Problem mit ADOTable und Refresh
Hallo,
probier es mal damit verwende statts einen
Delphi-Quellcode:
folgende Zeilen
ADOtable.Refresh;
Delphi-Quellcode:
ADOtable.Close;
ADOtable.Open; |
Re: Problem mit ADOTable und Refresh
Hi,
ist ein Bug in der TAdotable, wenn Du Dir ganz viel Ärger ersparen willst, zieh dir TBetterAdodataset aus dem Netz. Ist Freware, links über Google oder auch per Suche hier in der DP. Grüsse Woki |
Re: Problem mit ADOTable und Refresh
@trifid: Bringt mir nichts. Dann bin ich nach dem "open" beim ersten Datensatz. Das will ich aber nicht.
@woki: Hab ich schon, bin aber noch nicht ganz durchgestiegen Ausserdem hab ich bei mir jetzt noch nen TClientDataSet und nen TDataSetProvider eingebaut, und in meinem ClientDataSet in AfterPost das reingeschrieben
Delphi-Quellcode:
Jetzt wird zwar beim posten der Datensatz gespeichert, aber wenn ich unter dieser zeile ein
ClientDataSet1.ApplyUpdates(0);
Delphi-Quellcode:
ausführe, passiert nix. Ich muss die Tabelle schließen und wieder öffnen, dann bin ich aber wieder beim ersten Datensatz und bei großen Tabellen ist das auch eine nicht sehr gute Lösung
ClientDataSet1.Refresh
|
Re: Problem mit ADOTable und Refresh
welchen Datenbanktreiber nutzt du?
welche Datenbank? bei den ADO hilft eigentlich immer zum refreshen nur die holzhammermethode cose und dann open diesen tip habe ich vom Andreas Kosch - und der sollte es wissen aber hier noch eine andere ausführung aus dem Entwicklerforum Zitat:
|
Re: Problem mit ADOTable und Refresh
Zitat:
Also das Refresh mit ADOTable klappt gar nicht. Mit dem BetterADODataSet funktioniert nur das Requery bzw. das Refresh wenn ich
Delphi-Quellcode:
gesetzt hab, was aber beides das gleiche ist, oder?
RefreshType := rtRequery
Auf jeden Fall hab ich nach nem Requery zwar alle Datensätze aktualisiert, aber leider bin ich dann immer beim ersten Datensatz. Kann das an nem Insert liegen? Es geht darum, dass wenn ich nen neuen Datensatz einfüge ein Trigger ausgeführt wird der im ID-Feld automatisch einen Wert anlegt. Will einfach nur das direkt nach dem Insert ein Refresh aufgerufen wird, damit der Wert sofort angezeigt wird und ich die Tabelle nicht neu öffnen muss (Also kein Close/Open). Geht das überhaupt? |
Re: Problem mit ADOTable und Refresh
Zitat:
Also bei Datenbankproblemen gehören doch auf jeden Fall die verwendeten Komponenten, die Datenbank, alles mit Versionen und das genaue Vorgehen gleich in die Frage. Grüsse Woki |
Re: Problem mit ADOTable und Refresh
Schon klar das mit der Frage. Aber ich wusste erst nicht woran der Fehler liegt, da es bei jeder Tabelle und bei der Datenbank passiert. Auch bei z.B. Access-Datenbanken
|
Re: Problem mit ADOTable und Refresh
Zitat:
Bei Access im Zusammenhang mit einem Autoincrementfeld ist es ein Bug, da hilft TBetteradodataset (kann man genauso verwenden wie eine TTable, muß man nur einstellen, du solltest aber mal auf SQL und Queries umsteigen, wenn du mit anderen Dingen als filebasierten Desktopdatenbanken arbeitest), Auf den Bug hatte ich auch einfach mal blind getippt. Bei der Version mit dem Trigger wäre auch verwunderlich wenn es funktionierte, denn für das refresh müßte er ja die Datensätze, die von der Datenbank kommen, mit den lokalen abgleichen, wie soll er das, wenn ein Trigger zwischendurch den Schlüssel eines Datensatzes verändert hat, wie soll er den dann für den Abgleich wiederfinden, ich denke hier kann man so nicht vorgehen. Grüsse Woki |
Re: Problem mit ADOTable und Refresh
wenn du access als DB benutzt welchen treiber ?
jet und wenn ja welche version auf weelchen os? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:29 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz