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

Вниз

ADO - удаление записей из связанных таблиц   Найти похожие ветки 

 
Kerim_   (2005-06-02 13:28) [0]

В запросе более чем из 1-й таблицы rowid возвращаю только из 1-й.
При попытке удаления записей ADO пытается удалять и из связанных. Как побороть?

ЗЫ:
1. DOA не предлагать.
2. Использовать процедуры или другой запрос только из 1-й таблицы - этот вариант очевиден.


 
Kerim_   (2005-06-02 13:30) [1]

Прошу прощения, в исходном письме ставил галку на "Oracle", но почему-то не отобразилось. Речь идет о доступе к Oracle.


 
msguns ©   (2005-06-02 13:30) [2]

Да уж, проблема описана исчерпывающе..


 
sniknik ©   (2005-06-02 13:41) [3]

указать главную таблицу
ADODataSet1.Properties["Unique Table"].Value:= "xxx";


 
ANB ©   (2005-06-02 13:43) [4]

Если связку таблиц описывать через JOIN, то ADO начинает понимать, откуда удалять. ROWID для ADO - по барабану. А оракла не ест явные JOIN. Соответственно, ADO не может автоматически определить главную таблицу в запросе (они все во фромовой части) и его клинит.
Выход :
1) удаление ручками путем своих delete как тебе нужно
2) использование DOA или ODAC


 
ANB ©   (2005-06-02 13:44) [5]

3) Или как
> sniknik ©   (02.06.05 13:41) [3]
. Все имхо. Я бы на DOA или ODAC перешел.


 
Kerim_   (2005-06-02 14:55) [6]

большое спасибо sniknik за правильный ответ
и ANB за пояснения.
2msguns: кто знал ответ, тот прекрасно понял проблему.


 
msguns ©   (2005-06-02 15:16) [7]

>Kerim_   (02.06.05 14:55) [6]
>2msguns: кто знал ответ, тот прекрасно понял проблему.

Когда я постил [2], [1] у меня не было. Надо перечитывать прежде чем отправлять, тогда не будет подобных недоразумений.


 
ANB ©   (2005-06-02 15:23) [8]


> msguns ©   (02.06.05 13:30) [2]
- ну дык DOA и Oracle - синонимы. :))) Кстати, такая проблема не только в оракле бывает. Я в фоксе + адо такую же лабуду наблюдал. Причем у меня не было возможности определять "Unique Table", разве что парсить SQl, а у меня было около 400 запросов, которые надо было гонять в автомате и которые менял юзер. Пришлось жестко определить - все связки только явными JOIN.


 
Kerim_   (2005-06-02 15:58) [9]

Кстати, маленькое добавление.
Если это detail DataSet, то определять "Unique Table" лучше непосредственно перед удалением.


 
Anatoly Podgoretsky ©   (2005-06-03 13:54) [10]

ANB ©   (02.06.05 13:43) [4]
Если связку таблиц описывать через JOIN, то ADO начинает понимать, откуда удалять.

Как раз наоборот перестает понимать.
Просто АДО делает это логически, при удалении удалит во всех возможных таблицах по критерию, как просили так и делает.
Отсюда вывод - не надо просить странного!!!


 
isasa ©   (2005-06-03 15:59) [11]

Проверить наличие - "Каскадное удаление" в наложенных связях таблиц.


 
Anatoly Podgoretsky ©   (2005-06-03 16:07) [12]

isasa ©   (03.06.05 15:59) [11]
Это совсем другое, мы говорим про JOIN



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

Форум: "Базы";
Текущий архив: 2005.07.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.927 c
3-1117714649
suharew
2005-06-02 16:17
2005.07.18
Возможна ли такая ситуация. Кэшируется База?


14-1119521618
passlight
2005-06-23 14:13
2005.07.18
Размер пошлин на ввоз иномарки


4-1116185395
volser
2005-05-15 23:29
2005.07.18
Перехватить обновление рабочего стола


4-1117027830
Marser
2005-05-25 17:30
2005.07.18
GUI на WinAPI


1-1119609462
JTAG
2005-06-24 14:37
2005.07.18
Вычистить остатки компонента из программы как?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский