Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Delphi, сравнение таблиц из двух БДё  [new]
igel1969
Member

Откуда:
Сообщений: 73
Есть в Дельфовой программе два коннекшна к двум разным базам данных. нужно сравнить две одинаковые таблицы, а лучше два одинаковых набора данных, ранее возвращенных запросами TADODataSet, но из разных БД. Тупо перебирать записи впадло, как то это не по-SQLному, так и до использования оператора GOTO можно докатиться )))
Есть советы?
27 июл 12, 08:45    [12923024]     Ответить | Цитировать Сообщить модератору
 Re: Delphi, сравнение таблиц из двух БДё  [new]
denis2710
Member

Откуда: Москва
Сообщений: 3384
igel1969,
Если сервера разные,то смотреть можно в сторону linkedсерверов.
Если базы на одном сервере,то можно обратится как dbname.schema.tablename.
27 июл 12, 08:55    [12923052]     Ответить | Цитировать Сообщить модератору
 Re: Delphi, сравнение таблиц из двух БДё  [new]
igel1969
Member

Откуда:
Сообщений: 73
denis2710,
сервера разные, расположены на разных компах (((
я только что придумал один интересный выход:

итак, 2 таблицы, структура самая простая, всего два поля: GUID и Kol. GUID уникален, Kol - это количество типа Float.

в одном ADODataSet1 делаем Lookup поле, которое по GUID соединяется с другим ADODataSet2 и показывает Kol.
Таким образом получаем все записи из ADODataSet2, которые отличаются от аналогичных GUID по количеству в ADODataSet2 или вообще отсутствуют в ADODataSet2.
Я попробовал сделать Lookup поля в обеих ADODataSet, но Дельфи мне выдал Stack overflof. Видимо так их перекрещивать нельзя.
Придется создавать Lookup поле не в момент дизайна, а динамически, в самом коде программы, сперва проанализировать разницу слева-направо, потом поле удалить, создать Lookup поле во второй ADODataSet и проанализировать справа налево.

Не слишком сумбурно?
27 июл 12, 09:04    [12923072]     Ответить | Цитировать Сообщить модератору
 Re: Delphi, сравнение таблиц из двух БДё  [new]
denis2710
Member

Откуда: Москва
Сообщений: 3384
igel1969,
Ну если вы решили делать это в дельфи,то это в профильный форум.
Я же имел в виду,то что можно создать линкед сервер написать процедуру,которая собственно и будет выдавать строки,которые есть/нет в той или иной таблице.
27 июл 12, 09:11    [12923096]     Ответить | Цитировать Сообщить модератору
 Re: Delphi, сравнение таблиц из двух БДё  [new]
igel1969
Member

Откуда:
Сообщений: 73
denis2710,
спасибо, ранее linked server не делал, сейчас почитаю
27 июл 12, 09:12    [12923099]     Ответить | Цитировать Сообщить модератору
 Re: Delphi, сравнение таблиц из двух БДё  [new]
Vladimir Baskakov
Member

Откуда:
Сообщений: 2006
igel1969
Есть в Дельфовой программе два коннекшна к двум разным базам данных. нужно сравнить две одинаковые таблицы, а лучше два одинаковых набора данных, ранее возвращенных запросами TADODataSet, но из разных БД. Тупо перебирать записи впадло, как то это не по-SQLному, так и до использования оператора GOTO можно докатиться )))
Есть советы?

заливать в одну из баз данные из другой? (и.о. КО)
автор
но из разных БД

а что про них еще известно кроме того, что они - разные? какой объем данных? иногда и идина в программе написать можно. Я писал 3-4 раза. линкед сервера - это MS SQL Server-ное решение, оракловое
http://www.in-oracle.com/Oracle-DBA/architecture/oracle-heterogeneous-services.php
- но абсолютно не факт что речь идет о скуль-сервере или оракуле.
27 июл 12, 09:53    [12923314]     Ответить | Цитировать Сообщить модератору
 Re: Delphi, сравнение таблиц из двух БДё  [new]
igel1969
Member

Откуда:
Сообщений: 73
Vladimir Baskakov,
извиняюсь что сразу не указал, но из названия форума казалось бы следует - я использую MS SQL
27 июл 12, 09:59    [12923355]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить