Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Никак не добъюсь полного отображения информации [D7, IB6.x]


dolmat ©   (2004-03-30 16:45:00) 

После добавления или изменения поля связанные по inner join в гриде остаютя пустыми. В чем причина?
SELECT Opl.NPP, Opl.DATE_OPL, Opl.SUMMA_OPL, Opl.PENI, Opl.SCET, Opl.D_, Kvp.FIO, Kvp.NDOM as dom, Kvp.KV_N as kv, Np.NAIM as np, Ulicu.ULTULI as ul
FROM OPL Opl
  INNER JOIN KVP Kvp
  ON  (Opl.SCET = Kvp.SCET)  
  INNER JOIN NP Np
  ON  (Kvp.NP = Np.NNP)  
  INNER JOIN ULICU Ulicu
  ON  (Kvp.UL = Ulicu.UL)
Рефреш SQL
Select
 NPP,
 DATE_OPL,
 SUMMA_OPL,
 PENI,
 SCET,
 D_
from OPL
where
 NPP = :NPP


HSolo   (2004-03-30 18:15:00) [1]

А при старом RefreshSQL не пропадали? И после переоткрытия запроса все было нормально?


stud   (2004-03-30 18:12:00) [2]

а в таблицу KVP записи добавляются/обновляются?
иннер джоин по идее тут должен дать пустой набор.
можно поробовать лефт/райт оутер


dolmat   (2004-03-30 17:54:00) [3]

измененные из базы при изменении RefreshSQL на [1]
insert into OPL
 (NPP, DATE_OPL, SUMMA_OPL, PENI, SCET, D_, FIO, DOM, KV, NP, UL)
values
 (:NPP, :DATE_OPL, :SUMMA_OPL, :PENI, :SCET, :D_, :FIO, :DOM, :KV, :NP,
  :UL)
---------------
update OPL
set
 NPP = :NPP,
 DATE_OPL = :DATE_OPL,
 SUMMA_OPL = :SUMMA_OPL,
 PENI = :PENI,
 SCET = :SCET,
 D_ = :D_,
 FIO = :FIO,
 DOM = :DOM,
 KV = :KV,
 NP = :NP,
 UL = :UL
where
 NPP = :OLD_NPP


HSolo   (2004-03-30 17:48:00) [4]

> После изменения стали исчезать записи.
Какие - измененные, добавленные, те и другие? Откуда - из базы или из грида ?
Как выглядит InsertSQL / UpdateSQL?


dolmat   (2004-03-30 17:05:00) [5]

> HSolo ©  
После изменения стали исчезать записи.


HSolo   (2004-03-30 16:56:00) [6]

Причина в том, что RefreshSQL этих полей не видит. Вот так попробуйте:

SELECT Opl.NPP, Opl.DATE_OPL, Opl.SUMMA_OPL, Opl.PENI, Opl.SCET, Opl.D_, Kvp.FIO, Kvp.NDOM as dom, Kvp.KV_N as kv, Np.NAIM as np, Ulicu.ULTULI as ul
FROM OPL Opl
 INNER JOIN KVP Kvp
 ON  (Opl.SCET = Kvp.SCET)  
 INNER JOIN NP Np
 ON  (Kvp.NP = Np.NNP)  
 INNER JOIN ULICU Ulicu
 ON  (Kvp.UL = Ulicu.UL)
where
Opl.NPP = :NPP


Наверх

Титульная страница Поиск, карта сайта Написать письмо