Autor Beitrag
tomltom
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Do 20.01.05 10:38 
Hallo,
ich habe mehrere Tabellen die eine Artikelverwaltung beschreiben.
Jetzt hole ich über eine query abfrage aus verschiedene Tabellen Daten für
ein DBGrid (select artnun,... from Artikel,settings ...... where artnum=artnum).
In dem Grid sollen die daten änderbar sein.
Da das so eigentlich nicht geht (oder ???), habe ich die select abfrage in eine eine neue
Tabelle umgeleitet.(select artnum,... into TempTable from Artikel,Settings ...... where artnum=artnum).
Das funktioniert.
Aber wie bekomme ich jetzt geänderte Daten zurück in Ihre eigentlichen Tabellen?

Bis jetzt mache ich das so:
// vorauswahl was geändter wurde
select artnum,tempTable.min into temp1 from tempTable,settings where temp.artnum=settings.artnum and (temp.min<>settings.min );
update settings set min=(select temp1.min from temp1 where settings.artnum=temp1.artnum)
where exists (select temp1.min from temp1 where settings.artnum=temp1.artnum);
drop table temp1;
Das dauert mir aber zu lange, da ich auf die Art und weise jede Spalte anfassn muß.
Hat jemand eine Idee wie es eleganter geht ?

MfG
Tom
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Do 20.01.05 11:13 
Hallo Tom :welcome:

Zunächst einmal die Beschreibung des Update in Oracle (nur der Set-Bereich):
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
SET
{ { (column [, column ]...) = (subquery)
  | column = { expr | (subquery) | DEFAULT }
  }
     [, { (column [, column]...) = (subquery)
        | column = { expr | (subquery) | DEFAULT }
        }
     ]...
| VALUE (t_alias) = { expr | (subquery) }
}

Wie du siehst, kann man auch mehrere Felder gleichzeitig aktualisieren.

Ich kenne zwar deine Anwendung nicht, aber vielleicht solltest du dein Konzept überdenken. In einer Mehr-Benutzer-Umgebung bekommst du sehr schnell Probleme, wenn du so arbeitest, wie oben beschreiben.

Wenn ich vor einem nicht editierbaren Grid stehe, bastel ich mir noch einen Bereich mit entsprechenden Edit- oder DBEdit-Feldern.
Die entsprechenden Tabellen werden dann so in Abhängigkeit gesetzt, dass die Felder mit dem Grid synchronisiert sind. Diese Felder sind dann aber auch editierbar.
Dafür benötigst du dann natürlich mehrere TQuerys.
tomltom Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Do 20.01.05 22:39 
das mit den mehrfach updates hatte ich schon gelesen, aber noch nicht probiert.
muß ich mal tun und mal die zeit stoppen.
das mit edit und dbedit schau ich mir auch noch mal an.
ich finde es halt besser direkt im grid zu arbeiten.
mehr-benutzer umgebung war nicht direkt geplant.


besten dank
tom