![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
LEFT OUTER JOJN [D5, Access]
Трегубов Александр © (2005-10-28 09:52:00)Мастера! Подскажите пожалуйста.
Имеется запросSELECT T1.*, T2.Name FROM T1 LEFT OUTER JOIN T2 ON T1.GroupID=T2.ID;
При удалении строки из этого запроса удаляется и строка из таблицы T2 (а это справочник). Как можно избежать этого удаления?
Трегубов Александр (2005-10-28 16:13:00) [1]Все, помогло, просто меня немного сглючило на последнем посте.
Всем спасибо. Надо почаще читать MSDN
Трегубов Александр (2005-10-28 15:54:00) [2]Не помогает.
А кстати, что это дает?
msguns (2005-10-28 14:51:00) [3]>sniknik © (28.10.05 14:45) [12]
>после открытия датасета делай.
ADODataSet.Properties['Unique Table'].Value:= 'T1';
Неисповедимы пути адошние..
Прости, Господи (крестюсь)
sniknik (2005-10-28 14:45:00) [4]> Это sniknik знает. Жди его...
;о) точно, знаю. и не я один.
> Свойство Unique Table
после открытия датасета делай.
ADODataSet.Properties['Unique Table'].Value:= 'T1';
Трегубов Александр (2005-10-28 14:18:00) [5]Мастера!
Сейчас подумал, а может быть причина удаления из Т2 в том, что я упорядочиваю по полю T2.Name:
SELECT T1.*, T2.Name FROM T1 LEFT OUTER JOIN T2 ON T1.GroupID=T2.ID ORDER BY Kurs, T2.Name, Fam,Imy,Otchest;
Anatoly Podgoretsky (2005-10-28 13:52:00) [6]Свойство Unique Table
Трегубов Александр (2005-10-28 13:31:00) [7]Мне нужны именно SQL запросы. Поэтому и использую ADOQuery.
Lexer (2005-10-28 13:22:00) [8]Трегубов Александр, может тогда лучше использовать Lookup поля?
Трегубов Александр (2005-10-28 13:08:00) [9]
> Имеешь редактируемый Query, при удалении из которого удаляется
> запись из ссылочной таблицы..
Вот именно, это и мне непонятно.
Структура Т2 проста: ID - Счетчик, Name - текстовое, обязательное
msguns (2005-10-28 12:10:00) [10]>Трегубов Александр (28.10.05 11:30) [5]
>2. Нет. не определены, они мне ни к чему, я не вставляю, а удаляю.
Там имелось в виду Delete, конечно :)
Вообще странно это..
Имеешь редактируемый Query, при удалении из которого удаляется запись из ссылочной таблицы..
А как у тебя определена сама ссылочная таблица, посмотри ее структуру и особенно св-ва ID
Трегубов Александр (2005-10-28 11:30:00) [11]1. Да никак, просто длинное целое, условий нет. Это просто идентификатор группы, а в справочнике (Т2) ему сопоставляется Название группы.
Общий запрос выбирает все поля из Т1 и + поле Name из Т2
А вот при удалении нужно удалить тольлко из Т1, а Т2 не трогать.
2. Нет. не определены, они мне ни к чему, я не вставляю, а удаляю.
msguns (2005-10-28 10:58:00) [12]1. Как у тебя определено поле GroupID в T1 в самом Ацессе (В частности св-во "Условие на значение")?
2. Определены ли у тебя обработчики TADOQuery.Before/AfterInsert ?
Трегубов Александр (2005-10-28 10:49:00) [13]Компонент Query: TADOQuery,
а удаляю просто Query.Delete;
msguns (2005-10-28 10:38:00) [14]Приведи полностью запрос на удаление, а также компонент доступа
Johnmen (2005-10-28 09:58:00) [15]Это sniknik знает. Жди его...