Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

запрос на обновление [D7, IB6.x, MSSQL]


pavel_guzhanov ©   (2005-10-11 13:26:00) 

Здравствуйте.
Имеется база данных InterBase, IBQuery имеет свойство SQL: Select name from personal.
Имеется база MSSQL Server. В этой базе тоже есть таблица Personal. Мне надо сделать так, чтобы из таблицы Personal базы MSSQL удалились записи, поле name у которых имеет значения, которых нет в таблице Personal базы InterBase.
Подскажите, как это сделать....
Спасибо.


Sergey_Masloff   (2005-10-11 17:49:00) [1]

Val ©   (11.10.05 17:38) [10]
Ладно договорились. Я и не собирался фикать, честное слово. Просто сегодня целый день на взводе может форму выбрал не лучшую для возражения. В любом случае если вы расценили мой пост типа "мой вариант - шоколадный ваш г..но" то это оценка ошибочная. Я этого не подразумевал.


Val   (2005-10-11 17:38:00) [2]

>[8] Sergey_Masloff   (11.10.05 17:30)
Вот видите - все дело в "если". А "если" могут быть еще. Поэтому, думаю, мой вариант имеет права на жизнь не менее вашего и фикать его не гут :)


msguns   (2005-10-11 17:35:00) [3]

Приходилось делать подобное, и не единожды. Комбинации были разные, от парадокс-интербэйз, до мускул-скала. Пришел к выводу, что лучше "пробежки" по исходному со вставкой (запросами) в целевой нету. За исключением ситуаций, когда надо сделать данную процедуру регулярной.


Sergey_Masloff   (2005-10-11 17:30:00) [4]

Val ©   (11.10.05 17:10) [7]
>думаете ваш вариант безусловно быстрее? :)
Если таблицы большие - 100% быстрее проверено занусси.
Не знаю как для MSSQL для Oracle я добивался ускорения на 2 порядка. Сам бы не поверил пока не попробовал. Пакетная загрузка работает очень быстро, джойн вообще та операция которую SQL сервера делают лучше всего ;-)


Val   (2005-10-11 17:10:00) [5]

>[5] Sergey_Masloff   (11.10.05 14:07)
думаете ваш вариант безусловно быстрее? :)


pavel_guzhanov   (2005-10-11 14:16:00) [6]

Спасибо


Sergey_Masloff   (2005-10-11 14:07:00) [7]

Val ©   (11.10.05 13:57) [4]
>Бегаем по НД
Да, быстро будет...

pavel_guzhanov ©   (11.10.05 13:26)  
1) Перегоняем интербейзовскую таблицу в MSSQL
2) Делаем закрытый джойн 2 таблиц - "родной" и "интербейзовской"
3) все что не попали в пересечение - грохаем.


Val   (2005-10-11 13:57:00) [8]

Бегаем по НД. То есть, выбираем все name из MSSQL.Personal, бежим по ним в цикле и делаем запросы к IB.Personal с параметром name. Если ничего не возвращает, то посылаем в базу MSSQL запрос на удаление с этим же параметром.


pavel_guzhanov   (2005-10-11 13:35:00) [9]


> то проще убить все и создать те, что есть в IB


Не пройдет, т.к. в MSSQL кроме имени имеются уникальные идентификаторы, которые больше неоткуда взять.


> укажите для начала компоненты доступа


InterBase - IBDatabase и IBQuery
MSSQL - ADOConnection и ADOQuery


Val   (2005-10-11 13:32:00) [10]

укажите для начала компоненты доступа.


Desdechado   (2005-10-11 13:31:00) [11]

если таблица ни на что не завязана, то проще убить все и создать те, что есть в IB


Наверх

Титульная страница Поиск, карта сайта Написать письмо