![]() |
Datenbank: Pervasive SQL • Version: 9.5 • Zugriff über: PDAC
UpdateSQL
Hallo zusammen
Irgendwie hab ich ein Brett vor dem Kopf und die Funktion von TUpdateSQL (bzw. TPvUpdate für PDAC) gar nicht begriffen. In einem Form habe ich Adressen.Query1 zum Oeffnen einer View. Nach dem Oeffnen werden die Daten im Adressen.DBGrid1 angezeigt. Wenn ich nun mit dem Cursor auf dem Datensatz stehe, öffne ich mit Linksclick ein Kontextmenu. Im Kontextmenu wähle ich Datensatz ändern. Dies offnet mir ein neues Fenster (Form Adressmaske) mit AdressMaske.DBEdit(x)-Komponenten welche mit dem Adressen.Datasource1 verbunden sind. Nun mache ich hier meine Aenderungen aber wie werden Sie nun in die Datenbank geschrieben? Ich wollte bewusst auf das "alte Edit und Post" verzichten. In der Hilfe zu Turbo Borland Delphi fängt das grosse Schweigen an wo es interssant wird. Ich habe mit ExecSQL, Append etc experimentiert, aber es geht einfach nicht (div. Fehler oder keine Aenderung der Daten). Im Internet habe ich bisher kein schlaues Beispiel entdeckt. Kann mir jemand auf die Sprünge helfen? UpdateSQL1.ModifySQL / DeleteSQL / InsertSQL sind definiert und SQL-fehlerfrei. Meine Kernfrage wie löst man das zurückschreiben der Daten aus, und braucht es zum "vorbereiten" der Daten auch noch etwas wie füher Edit/Post? Gibt es ein gutes Beispielprogramm? Besten Dank Beni |
Re: UpdateSQL
TUpdateSQL simuliert das alte .Append/.Edit + .Post. Dh. Bei Query.Insert wird die InsertSQL-Abfrage ausgeführt, usw.
|
Re: UpdateSQL
Zitat:
Ich habe nun im Ereignis Datasource1.OnDataChance Adressen.UpdateSQL1.ExecSQL(ukModify) aufgerufen, nun will er die Typen der Parameter :Name, etc. nicht kennen. Ich war einmal der Meinung, dass die Parameter zur Laufzeit von Delphi selbst erzeugt werden. Ich bin mir auch nicht sicher, ob "Adressen.UpdateSQL1.ExexSQL(ukModify) der richtige Ansatz ist. Query.Insert ist zum Einfügen von Datensätzen denke ich, und löst bei mir eh einen Runtime-Error aus. Es ist kaum zu glauben, dass es in der Doku und im Internet kein Beispiel zu TUpdateSQL gibt. Vielleicht hat jemand ein kleines Projekt, an dem ich das Ganze mal nachvollziehen kann. In guter Hoffnung auf eine gute Lösung B. Isenegger |
Re: UpdateSQL
In der UpdateSQL-Komponente wird direkt gar nichts aufgerufen. Wie gesagt dient diese Komponente dazu, einem Query wie eine Table zu behandeln, falls die datenbank dahinter kein updateable View beherrscht.
Die UpdateSQL-Komponentw wird mit der Eigenschaft .UpdateObject mit dem Query verbunden. Du rufst Query.Edit auf änderst die Werte und beim Query.Post wird dann die .UpdateSQL-Abfrage des Updateobjektes aufgerufen. |
Re: UpdateSQL
Liste der Anhänge anzeigen (Anzahl: 1)
Moin :-)
Das UpdateSQL-Objekt ist in der Tat eine etwas 'komplizierte' Geschichte und die Hilfe ist nicht weniger verwirrend :roll: . Habe mich von daher in meinen Projekten nicht weiter mit befasst und die entsprechenden Aktionen (Delete, Insert, Modify) mit jeweils eigenständigen SQL's realisiert. Ich kann nicht so den Vorteil für das UpdateSQL erkennen... Nun, ich habe mal ein kleines Demo-Programm zusammengekloppt, zum besseren Verständnis bzgl. der Parameter sowie der Methoden .Apply() und .ExecSQL. Vielleicht hilft's ja ein wenig.... Ansonsten halt mal per PN nachfragen... (Demo ist mit D5E und ner schnöden ParadoxTabelle erstellt) |
Re: UpdateSQL
Zitat:
Besten Dank! Als neues Forumsmitglied bin ich erstaunt über die sehr gute "Qualität" quer durch's Forum. mfg Isenegger Bernhard |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:22 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