Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Помогите разобраться в алгоритме.

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
Anatoliy



Зарегистрирован: 15.04.2002
Сообщения: 681
Откуда: Moscow

СообщениеДобавлено: Пн Июн 17 2002 08:54    Заголовок сообщения: Помогите разобраться в алгоритме. Ответить с цитатой

Требуеться:

Просмотреть две таблицы(1.dbf,2.dbf) и сравнить записи. Записи одинаковые не трогать
записи отсутствующие в приемнике(1.dbf) добавить из источника(2.dbf).

Как это можно реализовать, по ниаболее простому пути.
Просьба объяснять по понятней и не отсылать к книгам и справкам.

Пробовал так:
КОД из двух циклов.
(for1)Нахожу первую запись в приемнике и сравниваю ее с источником((for1)пробегаюсь по всей таблице), далее беру в премнике вторую запись и пробегаюсь по источнику и т.д.
ПРОБЛЕМА:
Так как мой цикл состоит:

for(TDestination->First(); !TDestination->Eof; TDestination->Next())
{ for(Tdocum->First(); !Tdocum->Eof; Tdocum->Next())
{ if(Tdocum->FieldValues["docname"] == TDestination->FieldValues["docname"]);
добавляю запись
Tdocum->Insert();
Tdocum->.....
Tdocum->...... } }
то при несовпадении выполняеться код добавления, а запись есть на 200 строке.
TDestination - таблица источник
Tdocum - табл. приемник

Извиняюсь за не выразительность, если не понятно чего хочу, то попробую еще раз сказать.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
and3008



Зарегистрирован: 12.10.2001
Сообщения: 14893
Откуда: Н.Новгород

СообщениеДобавлено: Пн Июн 17 2002 14:01    Заголовок сообщения: Re: Помогите разобраться в алгоритме. Ответить с цитатой

Да по моему элементарно делается самим SQL-языком.
Объединяем две таблицы, записи в которых не совпадают.

SELECT * WROM table1, table2 where (fd1.tablefd1.table2) AND (fd2.table1fd1.table2) и т.д.

Что получилось - пихаем в таблицу 1.

На фига все эти линейные сортировки делать? Пусть их само ядро SQL делает, если надо.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Anatoliy



Зарегистрирован: 15.04.2002
Сообщения: 681
Откуда: Moscow

СообщениеДобавлено: Пн Июн 17 2002 14:12    Заголовок сообщения: Re: Помогите разобраться в алгоритме. Ответить с цитатой

Так БД у меня локальная.(даже не база, а отдельн.табл.*dbf.)

Все равно использовать TQuery?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
anthony



Зарегистрирован: 21.05.2002
Сообщения: 845
Откуда: Petrozavodsk

СообщениеДобавлено: Пн Июн 17 2002 14:51    Заголовок сообщения: Ессно! Ты почитай по F1 - они и слокальными таблицами работать умеют. Только надо, что бы BDE стояла. (-) Ответить с цитатой

-
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Anatoliy



Зарегистрирован: 15.04.2002
Сообщения: 681
Откуда: Moscow

СообщениеДобавлено: Пн Июн 17 2002 19:12    Заголовок сообщения: Я знаю что можно. Но не хотел использовать, так как.... Ответить с цитатой

программа закончена и нигде не использовал.
Вот понадобилось одна функция и теперь может включу конечно, но еще попробую по другому.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Valera
Гость





СообщениеДобавлено: Вт Июн 18 2002 03:39    Заголовок сообщения: Тафтология? Нет? (+) Ответить с цитатой

Если записи совпадают то они есть в 2, либо добавляются из 2. Значит все нужные записи есть в 2. Зачем тогда сравнивать?
Вернуться к началу
Anatoliy



Зарегистрирован: 15.04.2002
Сообщения: 681
Откуда: Moscow

СообщениеДобавлено: Вт Июн 18 2002 18:34    Заголовок сообщения: Нет...... Ответить с цитатой

Записи есть одинаковые, но не все, так как другая таблица заполняется на другом ПК, и потом, из нее добавляються те что отсутствуют в другой.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
anthony



Зарегистрирован: 21.05.2002
Сообщения: 845
Откуда: Petrozavodsk

СообщениеДобавлено: Ср Июн 19 2002 00:34    Заголовок сообщения: А не легче тогда хранить таблицу (и всю БД) на одном компе (типа, на сервере)?! (-) Ответить с цитатой

-
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Valera
Гость





СообщениеДобавлено: Ср Июн 19 2002 02:41    Заголовок сообщения: Причем одну, ту в которой есть ВСЕ записи? (-) Ответить с цитатой

-
Вернуться к началу
BONHOMME
Гость





СообщениеДобавлено: Ср Июн 26 2002 10:59    Заголовок сообщения: Только dbf не предназначены для многопользовательской работы... Ответить с цитатой

А при большом количестве записей твой алгоритм будет ну очень долго работать.

Делай сравнение за период. Тогда количество сравнений ограничится периодом.
Вернуться к началу
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...