Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.09.23;
Скачать: [xml.tar.bz2];

Вниз

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

 
Андрусь   (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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.007 c
3-73493
Slin
2002-08-31 00:23
2002.09.23
DBGrid


8-73772
Martyn
2002-05-21 12:27
2002.09.23
вопрос по повороту Bitmap


14-73847
NetBreaker666
2002-08-27 01:58
2002.09.23
Насчет недоумков-даунов.


6-73785
Net Cognition
2002-07-07 12:24
2002.09.23
BroadCast в Delphi


1-73721
Степан
2002-09-11 13:20
2002.09.23
Имя компьютера и пользователя





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский