|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
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-ий док-нт
Машины должны работать! Люди должны думать!
|
21.03.2009, 15:26 | #2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
а на чём (язык программирования/IDE/СУБД) Вы хотите получить реализацию?..
FoxPro устроит? в сущности задача сводится к ОДНОМУ элементарному селекту: Код:
|
21.03.2009, 21:44 | #3 |
Пользователь
Регистрация: 01.02.2009
Сообщений: 52
|
язык программирования делфи. А можно как-нибудь без запросов сделать?
Машины должны работать! Люди должны думать!
|
22.03.2009, 08:06 | #4 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
а чем Вам так запросы не нравятся? Если собираетесь использовать Дельфи, то Вам нужно решить, как Вы собираетесь читать/писать DBF файлы (какие компоненты и технологию доступа к данным будете использовать)? я бы лично сделал через ADO + TDBF (впрочем, это не аксиома, тут можно и поспорить ) И ещё - это учебная задача, или Вам реально нужно выбрать данные для практических нужд?! |
|
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. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Копирование записей из одной 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 |