![]() |
Frage zu RequestLive
Warum klappt folgendes bzw, warum ändert RequestLive hier seinen Wert wenn es vorher auf false stand:?
Delphi-Quellcode:
Und hier nicht:?
Query1.RequestLive := true;
Query1.Active := false; Query1.SQL.Strings[1]:= ''; Query1.Active := true;
Delphi-Quellcode:
Gruß
Query1.RequestLive := true;
Query1.Active := false; Query1.SQL.Strings[1]:= 'order by Name'; Query1.Active := true; Gambit P.S anders herum gehts, wenn vorher RequestLive auf true steht, kann man:
Delphi-Quellcode:
und es funzt.
Query1.RequestLive := false;
Query1.Active := false; Query1.SQL.Strings[1]:= 'order by Name'; Query1.Active := true; |
Könntest Du mal genauer beschreiben, was nicht funktioniert? hast Du das Programm schon mal Zeilenweise durchdebugt?
|
Ich wüsste jetzt ehrlichgesagt nicht, wie ich das noch näher beschreiben sollte. Ich möchte meine DB schreibgeschützt öffnen(daran liegt mir wirklich viel am Herzen). Daher habe ich eine CheckBox eingebaut, die sich solcher Routinen bedient. DataSource ist eine Query. Die DB wird also eh nicht editierbar geöffnet, egal ob ich in den Eigenschaften der Query RequestLive auf tru oder false setzte.
Wenn die erste der o.g. Routinen aufrufe, wo ich Request Live auf true setzen will, darf ich nicht noch 'order by name' verwenden, sonst kann ich nach wie vor nix editieren. Gruß Gambit |
Debugge das programm doch einfach mal zeilenweise durch. Dann kannst Du nachvollziehen, was es tatsächlich macht.
|
RequestLife funktioniert leider nicht bei allen SQL-Abfragen.
Folgendes steht dazu in der Delphi-Hilfe: "Alle Abfragen über mehrere Tabellen liefern schreibgeschützte Ergebnismengen. Auch andere Vorgaben können zu schreibgeschützten Ergebnismengen führen. Sehen Sie sich bei lokalen Tabellen (wie z.B. dBASE und Paradox) in der Hilfe zu Local SQL die Regeln zu aktualisierbaren Ergebnismengen an. Ziehen Sie für andere Tabellentypen (wie z.B. InterBase, Oracle und Sybase) die Dokumentation für das entsprechende Datenbanksystem zu Rate." Vielleicht kann dir das weiterhelfen? Natalia |
Zitat:
|
Tja, so wirds wohl sein. Da ich aber blutiger Anfänger bin, belasse ichs erstmal so. Was ich nur witzig finde ist, dass es andersherum funzt, also
Delphi-Quellcode:
Hier ändert RequestLive seinen Wert, auch wenn order by Name angegeben ist. Komisch das.
Query1.RequestLive := false;
Query1.Active := false; Query1.SQL.Strings[1]:= 'order by Name'; Query1.Active := true; Und wg. TUpdateSQL, da hab ich kein Beispiel für gefunden und kann mir somit nix drunter vorstellen. Gambit |
Zitat:
|
OK, Danke! Ich denke für den Anfang ist mein Buch schon gar nicht schlecht(Datenbankprogrammierung mit Delphi 6 aus dem Hanser Verlag von Doberenz und Kowalski)
Besten Dank Gambit |
Hallo Gambit :D
Also ZUERST(!!!) Query schliessen Query1.Close; und erst dann RequestLive ändern: Query1.RequestLive := FALSE; vielleicht jetzt SQL zuweisen, und erst dann: Query1.Open Gruß Paul Jr. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:23 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