Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.09.23;
Скачать: CL | DM;

Вниз

как правильно организовать вставку   Найти похожие ветки 

 
Андрусь ©   (2002-08-30 15:29) [0]

Привет всем! Возник вот такой вопрос.Может немного детский,но всё же. Есть 2 таблицы А(A_id, A_data, fk_B) и В (B_id, B). Есть Query1 с SQL
SELECT A.A_id, A.A_data, A.fk_B, A.RowID B.B
FROM A,B
WHERE A.fk_B = B.B_id

Соответственно в гриде,откуда вносим данные в А fk_B не отображаем, а там B.B. Нужно организовать вставку поля fk_B. Можно через lookup поле. Но моей ситуации объём В велик. Поэтому организую вставку через отд. модальную форму с гридом,едитом,Query2(на табл.В) и кнопкой фильтровать(на клик. просто добавляю в SQL WHERE). По двойному клику по строке грида Query1.fk_B:=Query2.B_id,Query1.B:=Query2.B. Поле Query1.B не является доступным для редактирования и возникает ошибка. Можно выбрать B.RowId... Вопрос - как правильно организовать всё.
Зараннее всем большое спасибо!


 
Val ©   (2002-08-30 15:35) [1]

надо вставлять в таблицу а.fk_b.
по закрытии формы можно перечитывать данные. можно перечитывание оставить на усмотрение пользователя(Кнопка).


 
Андрусь ©   (2002-08-30 16:14) [2]

Логично,но как быть с таким моментом:пользователь стоит на записи n,вызвал форму,вставил а.fk_b. Обновляем данные и смещаемся на запись n. При больших n будут хорошие тормоза.


 
Val ©   (2002-08-30 16:25) [3]

что ж поделаешь?
перечитывать-то надо.


 
Андрусь ©   (2002-08-30 16:52) [4]

Так вот я о чем и говорю,можно же переситать не весь датасет,а лишь обновить запись,которую мы редактировали. Один путь я сказал - сделать доступной для редактирования таблицу В на уровне датасета и запретить на уровне грида. Т.о. получим возможность вставлять новые a.fk_b и в.в без рефреша.Но сама идея некрасива.


 
Val ©   (2002-08-30 17:02) [5]

TUpdateSQL+CashedUpdates?


 
Андрусь ©   (2002-08-30 17:21) [6]

Ну да типа того. Только ж говорю - сама идея некрасива.


 
Андрусь ©   (2002-08-30 18:14) [7]

Или вот теоретически тоже вариант,правда не знаю - тормозить будет всё равно. Если сделать поле Query1.B calculated и на OnCalculate извлекать для каждой записи курсор.



Страницы: 1 вся ветка

Текущий архив: 2002.09.23;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.018 c
1-73660
Cr@sh
2002-09-11 12:53
2002.09.23
Запуск 32 разрядного приложения из Доса


14-73815
voronkov
2002-08-26 18:38
2002.09.23
Кто нибудь слышал как работать с китайским и ему подобными яз.


1-73611
Slava V.
2002-09-12 12:38
2002.09.23
Как передать в функцию двухмерный массив по указателю????


1-73736
iNew
2002-09-11 16:33
2002.09.23
Ругается на uCallbackMessage:=wm_user+1; говорит undeclared


1-73661
XHelp
2002-09-13 00:04
2002.09.23
Схожесть Double ов