Cześć, mam 2 tabele:
users
ID
GID <-- ID z tabeli groups lub null
name
wStart
wEnd
groups
ID
name
wStart
wEnd
To są użytkownicy(users) i grupy(groups). Chodzi o to, że użytkownik może należeć do grupy, ale nie musi. Jeśli nie należy to w polu GID jest NULL
Zrobiłem sobie widok, który pobiera mi dane:
SELECT u.ID, u.name, u.GID,
(CASE WHEN u.gid IS NULL THEN u.wStart ELSE g.wStart END) AS wStart,
(CASE WHEN u.gid IS NULL THEN u.wEnd ELSE g.wEnd END) AS wEnd,
(CASE WHEN u.gid IS NULL THEN 'brak grupy' ELSE g.name END) AS gName
FROM users AS u
LEFT JOIN groups AS g ON u.GID = g.ID
Zasada jest taka. Jeśli użytkownik jest przypisany do grupy, to wtedy pole wStart(wEnd) jest brane z tabeli groups. Jeśli użytkownik nie jest przypisany do grupy, to wtedy pole wStart(wEnd) jest brane z tabeli users.
Pytanie moje takie.
Robię to w Delphi za pomocą ADO.
Czy da się zrobić jakoś modyfikację pola wStart?
Bo jeśli robię
ADOQuery.Edit;
ADOQuery.FieldByName('wStart').asDateTime:=cos_tam;
ADOQuery.Post;
Dostaję błąd, że pole wStart nie może być modyfikowane.
Czy da się jakoś tak to zrobić, czy tylko sql mnie ratuje?