Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2009, 14:52   #1
ИВэТэшка
Пользователь
 
Аватар для ИВэТэшка
 
Регистрация: 01.02.2009
Сообщений: 52
По умолчанию Копирование записей между таблицами DBF

Здраствуйте! В базе данных существуют две таблицы, с абсолютно одинаковыми полями (а именно, три поля: RECORD, OBJECT, ID_INSTR), в одну из них (1ую) записываются необходимые данные. Надо перенести эти данные в другую (2ую) таблицу, исключая повторяющиеся по двум полям записи. Поясняю... надо, как бы отфильтровать по полям: OBJECT и ID_INSTR, если существует несколько записей у которых, например OBJECT=1 и ID_INSTR=2, то во 2ую таблицу должна попасть только одна такая запись! Значение поля RECORD ни на что не влияет и просто копируется. Для большей наглядности, прикрепляю doc-ий док-нт
Вложения
Тип файла: doc БД.doc (36.0 Кб, 8 просмотров)
Машины должны работать! Люди должны думать!
ИВэТэшка вне форума Ответить с цитированием
Старый 21.03.2009, 15:26   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

а на чём (язык программирования/IDE/СУБД) Вы хотите получить реализацию?..
FoxPro устроит?

в сущности задача сводится к ОДНОМУ элементарному селекту:
Код:
select min(RECORD), OBJECT, ID_INSTR from Table1
group by OBJECT, ID_INSTR into table Table2
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.03.2009, 21:44   #3
ИВэТэшка
Пользователь
 
Аватар для ИВэТэшка
 
Регистрация: 01.02.2009
Сообщений: 52
По умолчанию

язык программирования делфи. А можно как-нибудь без запросов сделать?
Машины должны работать! Люди должны думать!
ИВэТэшка вне форума Ответить с цитированием
Старый 22.03.2009, 08:06   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
А можно как-нибудь без запросов сделать?
разумеется можно. сделать можно и множеством способов. я только не понимаю, зачем из программы, которая займёт 5-7 строк делать монстра с сотней строк кода, да ещё и малоэффективным алгоритмом обработки?!
а чем Вам так запросы не нравятся?
Если собираетесь использовать Дельфи, то Вам нужно решить, как Вы собираетесь читать/писать DBF файлы (какие компоненты и технологию доступа к данным будете использовать)?
я бы лично сделал через ADO + TDBF (впрочем, это не аксиома, тут можно и поспорить )
И ещё - это учебная задача, или Вам реально нужно выбрать данные для практических нужд?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 22.03.2009, 10:43   #5
ИВэТэшка
Пользователь
 
Аватар для ИВэТэшка
 
Регистрация: 01.02.2009
Сообщений: 52
По умолчанию

Это не учебная задача, это часть диплома, из-за которой всё остановилось:-( Можно назвать это багом программы... ну т.е. собственно это исходная таблица в которой повторяются записи, далее из этой таблицы при помощи sql запросы происходит нужная выборка. Я хочу решить эту проблему, просто перекопировав таблицу, исключая повторяющиеся записи, а потом уже использовать sql.
Пробовал вот что-то подобное (ниже код)... но таблица просто копируется, записи остаются.
for i:=1 to table1.recordcount do
begin
for j:=1 to table2.recordcount do
begin
If Table3.Locate('OBJECT;ID_INSTR', VarArrayOF([i,j]),[])=true then
begin
Table3.Locate('OBJECT;ID_INSTR', VarArrayOF([i,j]),[])
table4.active:=true;
table4.insert;
table4.fieldbyname('OBJECT').AsInte ger := i;
table4.fieldbyname('ID_INSTR').AsIn teger := j;
table4.fieldbyname('RECORD').AsInte ger := table3.fieldbyname('RECORD').AsInte ger;
table4.post;
table4.active:=false;
end;
end;
end;
Машины должны работать! Люди должны думать!

Последний раз редактировалось ИВэТэшка; 22.03.2009 в 10:47.
ИВэТэшка вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Копирование записей из одной DBF таблицы в другую ИВэТэшка БД в Delphi 0 20.03.2009 22:37
Работа с таблицами в DBF ИВэТэшка БД в Delphi 1 20.03.2009 20:50
Связи между таблицами! Alexij БД в Delphi 1 10.06.2008 18:11
Связь между таблицами Катрина БД в Delphi 3 17.05.2008 18:24
Перенос записей между таблицами Македонский БД в Delphi 12 27.08.2007 09:41