|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
18.01.2012, 13:06 | #1 |
Форумчанин
Регистрация: 22.11.2011
Сообщений: 127
|
Перебор в массиве с выявлением совпадений
Здраствуйте, у меня трудная задача которую не могу решить.
Есть три базы данных (MS SQL 2008), в базах данных есть таблицы в которых есть поле Договор. Но одна база данных пустая (Прил.dbo) Так вот.. в чем задача перед открытием AdoQuery с базой данных нужно из первой базы данных сохранить столбец Договор в массив, потом сохранить значения из столбца Договор в базе данных Прил.dbo, потом сравнить их на наличие одинаковых и разных значений, и те что нет закинуть в столбец Договор в базе данных Прил.dbo, при первом запуске закинуть все значения построчно. Потом в столбец BD базы данных Прил.dbo закинуть наименование первой базы данных как string. Потом загрузить первую базу данных с полем Отметка из базы данных Прил.dbo как right join к первой базе данных, c right join Прил.dbo.TBL ON Прил.dbo.TBL.Договор=tablename.dbo. Договора.Договор where Прил.dbo.TBL.BD=tablename и открыть первую базу данных, и также делать при открытии второй базы данных, кнопки у меня есть. Привожу часть кода с комментарием: Код:
собственно такой: Код:
Код:
___________ Код нужно оформлять по правилам: тегом [CODE]..[/СODE] (это кнопочка с решёточкой #) Не забывайте об этом! Модератор. Последний раз редактировалось Serge_Bliznykov; 18.01.2012 в 13:42. |
18.01.2012, 14:13 | #2 |
Форумчанин
Регистрация: 25.07.2009
Сообщений: 533
|
А на уровне сервера БД это сделать нельзя что ли?
Из 2-х бд собрать выборку и закинуть в 3-ю. Нафига делфи для этого дергать?
Маразм крепчал. Еноты пели...
R-style Dataknowlege Access Member Account (RDAMA) |
18.01.2012, 15:00 | #3 | |
Форумчанин
Регистрация: 22.11.2011
Сообщений: 127
|
Цитата:
Сейчас уже сделал половину вопроса сам. осталась проблема не могу понять как это сделать, вот код: Код:
2. Как сделать чтобы данные из первого и второго массива проверялись на повторы и закидывать все в третий массив? Например: Первый массив | Второй массив 1-----------------1 2-----------------2 3-----------------3 4-----------------5 5-----------------6 6-----------------7 7-----------------8 8-----------------1 9-----------------10 10-----------------11 11 12 13 Вот чтобы те которые есть в первом массиве не копировались в третий массив, а те которых нет копировались. (Массив array of string)? |
|
18.01.2012, 15:24 | #4 | ||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
SovereignSun, вам правильно говорят, что когда Вы пишите запрос, которые затрагивает НЕСКОЛЬКО таблиц, то это запрос выполняется на самом сервере (ну, я имею в виду нормальные СУБД).
это по сути. теперь же формальные ответы на ваши вопросы (которые не нужно решать, если сделать всё запросами): Цитата:
... SetLength(ИмяМассива, КоличествоЭлементов); Цитата:
можно улучшить быстродействие, если использовать отсортированные структуры. |
||
18.01.2012, 15:30 | #5 | ||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
Цитата:
Код:
Цитата:
можно использовать и сравнение строк, но и исходные массивы должны быть отсортированы по этому правилу (сравнение строк).
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 18.01.2012 в 15:37. |
||
18.01.2012, 15:53 | #6 |
Форумчанин
Регистрация: 22.11.2011
Сообщений: 127
|
Блин вот логически составил код.. а нефига...
Код:
|
18.01.2012, 16:00 | #7 |
Форумчанин
Регистрация: 22.11.2011
Сообщений: 127
|
|
18.01.2012, 18:26 | #8 | |
Форумчанин
Регистрация: 25.07.2009
Сообщений: 533
|
Задача у вас просто несколько дурная.
Сам работаю в компании с сетью по всей стране. И такой дурости не видел. Правда не мс у нас под капотом оракл. Но и мс умеет с дблинками работать, только работа несколько иначе строится. И данные синхронизируются и выгружаются в обе стороны без всяких проблем. Да бывают проблемы на стороне провов. Особенно с такими регионами как Камчатка где из связи только спутник, но ничего и это не страшно. А то что у вас никто не следит за БД так это извините, глупо как раз с вашей стороны. У вас получается БД живет своей жизнью, а все остальное своей. При этом вы пытаетесь исправлять на клиенте, то что надо исправить на сервере. Это исходя из ваших слов о том, что Цитата:
А то что интернет, так это не страшно. До этого работал над системой БД которой крутилась на ВПС в США, а клиентами были суда по всему миру. И ничего не пугал никого нестабильный спутниковый канал с огромным пингом. Код:
Маразм крепчал. Еноты пели...
R-style Dataknowlege Access Member Account (RDAMA) |
|
19.01.2012, 09:14 | #9 |
Форумчанин
Регистрация: 22.11.2011
Сообщений: 127
|
Ребята я все понимаю, но это не помогает мне решить задачу... не моя проблема, что в организации никто за базой не следит, и кажый день не будет такую проверку делать и копировать ID из одной базы в другую. Просто в одной базе хранятся данные, которые из сайта закидываются.. а во второй базе изменения которые необходимы пользователям в организации.. (галочки, поле комментария).. и надо только их сохранять без изменений в отдельной базе по привязке ID (Договор), БД (База Данных).
Как сделать цикл внутри цикла с проверкой? Тоесть цикл по первому массиву, внутри цикл по второму циклы на случай если = то следующий элемент первого цикла, если не равен и запись второго цикла последняя, то добавить запись из первого цикла в третий. ???? |
19.01.2012, 10:01 | #10 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
Цитата:
Код:
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 19.01.2012 в 10:04. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Поиск совпадений | KillJoy | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 05.09.2011 11:53 |
Поиск совпадений | Серёга0629 | Microsoft Office Excel | 9 | 29.08.2011 09:22 |
Поиск совпадений | Claster | Общие вопросы Delphi | 4 | 22.06.2011 17:34 |
Поиск совпадений в БД | _PROGRAMM_ | PHP | 6 | 21.05.2010 13:53 |
Поиск совпадений ячейки в массиве | VPavlov | Microsoft Office Excel | 1 | 02.04.2010 19:29 |