Вниз
Скачать: CL | DM;

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

← →
pavel_guzhanov ©   (2005-10-11 13:26) [0]

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


← →
Desdechado ©   (2005-10-11 13:31) [1]

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


← →
Val ©   (2005-10-11 13:32) [2]

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


← →
pavel_guzhanov ©   (2005-10-11 13:35) [3]


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


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


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


InterBase - IBDatabase и IBQuery
MSSQL - ADOConnection и ADOQuery


← →
Val ©   (2005-10-11 13:57) [4]

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


← →
Sergey_Masloff   (2005-10-11 14:07) [5]

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

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


← →
pavel_guzhanov ©   (2005-10-11 14:16) [6]

Спасибо


← →
Val ©   (2005-10-11 17:10) [7]

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


← →
Sergey_Masloff   (2005-10-11 17:30) [8]

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


← →
msguns ©   (2005-10-11 17:35) [9]

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


← →
Val ©   (2005-10-11 17:38) [10]

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


← →
Sergey_Masloff   (2005-10-11 17:49) [11]

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



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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.027 c
2-1130339360
ag0_
2005-10-26 19:09
2005.11.20
TEdit


1-1130404652
leonon
2005-10-27 13:17
2005.11.20
Работа с TWebBrowser


14-1130362386
TButton
2005-10-27 01:33
2005.11.20
понравился вопрос в тесте


1-1130325641
Juice
2005-10-26 15:20
2005.11.20
Assertions, директива $C


11-1109298582
Lars
2005-02-25 05:29
2005.11.20
A Perfect use for KOL?? CGI web server?




   Наверх