Главная страница
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.012 c
6-73784
Valentain
2002-07-18 14:12
2002.09.23
Уже страшновато задавать вопрос про ... сокеты...


3-73572
saf
2002-09-03 18:50
2002.09.23
STACK OVERFLOW


1-73734
Демонов Е.В.
2002-09-11 14:41
2002.09.23
Кде Найти Остальные Главы


1-73580
Демонов Е.В.
2002-09-10 16:26
2002.09.23
Property !!!!


14-73858
ErmSergey
2002-08-28 17:50
2002.09.23
БД без BDE