Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Копирование данных в Foxpro 2.6  [new]
Nik_Lis
Member

Откуда: г. Владимир
Сообщений: 5
Подскажите пожайлуста, как сделать частичное копирование данных из
одной таблицы в другую в foxpro 2.6:
Допустим есть 2 таблицы содержащие анкетные данные, первая содержит 100
записей(фамилия, имя, отчество, место рождения, паспортные данные),
вторая 30 записей, 20 из которых, из первой таблицы, но заполнены
только поля фамилия, имя отчество, остальные пустые.
Нужно отобрать эти 20 записей в первой таблице, и скопировать
недостающие данные во вторую.
С помощью каких функций foxpro 2.6 можно выполнить подобную операцию?
7 окт 04, 09:40    [1014822]     Ответить | Цитировать Сообщить модератору
 Re: Копирование данных в Foxpro 2.6  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
SELECT-SQL + APPEND FROM

Подробнее надо расписывать?
7 окт 04, 09:44    [1014837]     Ответить | Цитировать Сообщить модератору
 Re: Копирование данных в Foxpro 2.6  [new]
leaf
Member [заблокирован]

Откуда: Ростов-на-Дону --> Москва
Сообщений: 2661
select в свободную таблицу?
append из курсора в 2 прокатит ?
7 окт 04, 09:51    [1014873]     Ответить | Цитировать Сообщить модератору
 Re: Копирование данных в Foxpro 2.6  [new]
plugh
Member

Откуда: Москва
Сообщений: 103
Конечно, прокатит:

SELECT cursur
db = dbf()
append from &db

таким макаром..
7 окт 04, 09:59    [1014902]     Ответить | Цитировать Сообщить модератору
 Re: Копирование данных в Foxpro 2.6  [new]
Nik_Lis
Member

Откуда: г. Владимир
Сообщений: 5
Пожайлуста, если можно поподробней
7 окт 04, 10:05    [1014940]     Ответить | Цитировать Сообщить модератору
 Re: Копирование данных в Foxpro 2.6  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Уточни вопрос:

Во второй таблице УЖЕ ЕСТЬ записи со значениями полей "Фамилия", "Имя", "Отчество" такие же как и в первой таблице.

Тебе надо найти соответсвтующие записи в первой таблице и переписать содержимое незаполненных полей из первой таблицы во вторую? Или ДОБАВИТЬ НОВЫЕ записи, оставив записи с незаполненными полями "как есть"?
7 окт 04, 10:13    [1014980]     Ответить | Цитировать Сообщить модератору
 Re: Копирование данных в Foxpro 2.6  [new]
Nik_Lis
Member

Откуда: г. Владимир
Сообщений: 5
Нужно найти соответсвтующие записи в первой таблице и переписать содержимое незаполненных полей из первой таблицы во вторую.
7 окт 04, 10:21    [1015019]     Ответить | Цитировать Сообщить модератору
 Re: Копирование данных в Foxpro 2.6  [new]
Nik_Lis
Member

Откуда: г. Владимир
Сообщений: 5
Нужно найти соответсвтующие записи в первой таблице и переписать содержимое незаполненных полей из первой таблицы во вторую, добавлять новые записи не нужно.
7 окт 04, 10:24    [1015033]     Ответить | Цитировать Сообщить модератору
 Re: Копирование данных в Foxpro 2.6  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Тогда я неправильно понял вопрос. Действия примерно такие:

* Организуем перебор всех записей с незаполненными полями во второй таблице
select Tab2
SET ORDER TO 0
GO TOP
SCAN FOR EMPTY(Field1) AND EMPTY(Field2) AND ...
	* Ищем Имя, Фамилия, Отчество в первой таблице
	select Tab1
	LOCATE FOR Familiya=Tab2.Familiya ;
		AND Imya=Tab2.Imya ;
		AND Otchestvo=Tab2.Otchestvo
	select Tab2
	* Если нашли, то делаем замену в текущей записи второй таблицы
	IF FOUND('Tab1')
		REPLACE Field1 WITH Tab1.Field1,
			Field2 WITH Tab1.Field2,
			...
	ENDIF
ENDSCAN
7 окт 04, 10:52    [1015132]     Ответить | Цитировать Сообщить модератору
 Re: Копирование данных в Foxpro 2.6  [new]
Nik_Lis
Member

Откуда: г. Владимир
Сообщений: 5
Попробую, большое спасибо.
7 окт 04, 13:19    [1015843]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить