Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi TZUpdateSQL bei mehreren Tabellen (https://www.delphipraxis.net/93755-tzupdatesql-bei-mehreren-tabellen.html)

Mr_G 10. Jun 2007 23:13

Datenbank: MySQL • Version: 5.0 • Zugriff über: Zeos

TZUpdateSQL bei mehreren Tabellen
 
Hallo zusammen,

ich habe folgendes Problem: Ich habe eine Abfrage, die sich über drei Tabellen erstreckt, da ich in der Tabelle, um die es geht, zwei Fremdschlüssel verwende die auf einen Datensatz in einer der anderen Tabellen verweisen (also eigentlich eine simple Verknüpfung).

Nun möchte ich dafür sorgen, dass man diese Tabelle auch bearbeiten kann. Ich habe dazu DBLookupComboboxen verwendet um die Verknüpfung aufzudröseln. Nach kurzer Recherche fand ich heraus, dass man mit TZUpdateSQL auch dafür sorgen kann, dass die entsprechenden Datensätze gelöscht, geändert und erstellt werden können. Mein Problem ist nun aber die Formulierung der Querys. Ich blicke leider nicht so ganz durch die Parameter-Geschichten durch (ala ":Param1" und ":OLD_Param")... ich Frage mich wie kommt die Kompo an die Werte und wie bekomm ich auch die entsprechenden Ids um meine Verknüpfungen einzutragen.

Meine Ausweichlösung wäre die ensprechenden Werte beim BeforeInsert/Update in das jeweilige Query einzuarbeiten - aber das geht doch bestimmt besser/anders?

Danke im Voraus

Mr_G

Mr_G 13. Jun 2007 17:28

Re: TZUpdateSQL bei mehreren Tabellen
 
*push* :(

Mr_G 30. Jul 2007 10:52

Re: TZUpdateSQL bei mehreren Tabellen
 
Auch wenn es schon länger her ist... das Problem beschäftigt mich immernoch!
Kann mir denn keiner helfen? Ist die Frage unverständlich? :(

hoika 30. Jul 2007 15:50

Re: TZUpdateSQL bei mehreren Tabellen
 
Hallo,

hast du dir das hier schon angesehen ?

http://delphi-kurs.de/tutorials/zeosfirebird/?page=8


Heiko

Mr_G 30. Jul 2007 16:11

Re: TZUpdateSQL bei mehreren Tabellen
 
Danke für die Antwort! Ein erster Hoffnungsschimmer! :bounce1:

Ich habe die Erläuterungen bereits gelesen und habe daraufhin die OH zu TUpdateSQL befragt. Der Aufbau der Statements müsste also stimmen.
Leider funktioniert die Sache aber noch nicht und das seltsame ist, dass in der Komponente auch keine Ereignisse wie "BeforeInsert" ausgelöst werden. Ich kann mir nicht erklären wieso. Ich habe einfach dem TZQuery das TZUpdateSQL zugewiesen (zur Laufzeit) und bearbeite die Datenmenge dann mit den entsprechenden Controls (DBEdit, DBLookUpCombobox und DBNavigator).
Gruß

Jan

hoika 30. Jul 2007 16:19

Re: TZUpdateSQL bei mehreren Tabellen
 
Hallo,

tja, keine Ahnung.
Ich baue meine Queries immer zur Laufzeit zusammen, wie ich sie brauche (kein DB-Krams).
Und ausserdem nehme ich kein zeos.

Probier doch mal aus,
was der sql-monitor von zeos sagt.


Heiko

Mr_G 30. Jul 2007 16:26

Re: TZUpdateSQL bei mehreren Tabellen
 
Wie löst du das denn wenn du in einer Tabelle weitere Tabellen mittels Fremdschlüssel referenziert hast und besagte Tabelle dann bearbeiten lassen willst?
Welche Komponenten nutzt du und wie gehst du dabei vor?

hoika 30. Jul 2007 16:32

Re: TZUpdateSQL bei mehreren Tabellen
 
Hallo,

wo ist da der Unterschied ?

Bsp:

Tabelle 1: Personal (ID Integer, Name Char, LGId Integer)
Tabelle 2: Lohngruppe-LG (ID, Name)

Jede Person hat eine Feld LGId, das verweist auf einen Record der Lohngruppe.

Will ich die Zuordnung Person-Lohngruppe bearbeiten, klicke ich auf "Lohngruppe ändern",
mache ein eigenes Formular mit allen Lohngruppen auf,
lasse eines auswählen (ich brauche nur die Id), und dann kommt ein

Update Personal Set LGId=:LGId Where Id=:Id;
ParamByName ... usw.
ExecSQL;


Hier könnte man z.B. TZQuery benutzen.

Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:00 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