Главная страница
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.02 c
8-73770
Draculenok
2002-05-27 14:27
2002.09.23
как отобразить GIF???


1-73705
Pvk2002
2002-09-11 10:55
2002.09.23
Помогите с ToolButton !!!!


6-73798
DenisA
2002-07-20 21:49
2002.09.23
Список компов в ЛВС с ip-адресами


4-73935
MJH
2002-08-02 17:46
2002.09.23
Регианальные сеттинги языка


14-73836
GydruS
2002-08-27 11:36
2002.09.23
Зацените, если интересно, плиз :)