powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / replace
9 сообщений из 9, страница 1 из 1
replace
    #34342885
phonix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть 2 БД:
use BD_1.dbf in alias right
use BD_2.dbf in alias wrong
ТО ЕСТЬ ЭТО ДВЕ ЭДЕНТИЧНЫЕ ПО ПОЛЯМ БАЗЫ
Необходимо:
ВЫБРАТЬ ИЗ БАЗЫ 1 те ПРАВИЛЬНЫЕ АДРЕСА(adres.bd_1), которые соответвую условию: if pass.WRONG=pass.RIGHT и замекнить ими Неправильные в БАЗе 2.
...
Рейтинг: 0 / 0
replace
    #34342923
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Файл DBF в терминологии Visual FoxPro называется "таблица".

Какое поле в таблицах является ключевым? Есть ли такое поле вообще?

Ключевым называется поле или набор полей по значению которых можно однозначно идентифицировать запись таблицы. Т.е. не может существовать двух записей в одной таблице с одним и тем же значением ключевого поля.

В данном случае это поле необходимо для того, чтобы по значению ключевого поля в таблице с "правильным" адресом можно было найти соответствующую ей запись в таблице с "не правильным" адресом. Т.е. определить что именно (какую запись) надо изменить.

Если ключевого поля нет, то, в общем случае, задача не имеет решения. Просто невозможно определить что именно (какую запись) надо изменить.
...
Рейтинг: 0 / 0
replace
    #34343051
phonix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пусть будет, например key
...
Рейтинг: 0 / 0
replace
    #34344006
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Версия FoxPro?
Существует ли индекс по полю key?
...
Рейтинг: 0 / 0
replace
    #34344128
Maltsev Max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я понял !!!

adres.bd_1 надо читать как bd_1.adres

и

pass.WRONG=pass.RIGHT читать как WRONG.pass=RIGHT.pass

Из этого следует что:


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
use BD_1.dbf in alias right
use BD_2.dbf in alias wrong
Select right
Index On pass tag pass
Select wrong
Set Relation to right.Pass into right
Go Top in wrong
Replace all Pass with right.pass
...
Рейтинг: 0 / 0
replace
    #34344143
Maltsev Max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поправка:
В Replace Pass читать как Adres
...
Рейтинг: 0 / 0
replace
    #34347944
phonix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
use BD_1.dbf in alias right
use BD_2.dbf in alias wrong
Select right
Index On pass tag pass
Select wrong
Set Relation to right.Pass into right
Go Top in wrong
Replace all Pass with right.pass

Заменяет все одним адрессом
...
Рейтинг: 0 / 0
replace
    #34348876
Maltsev Max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Конечно ...
Прошу прощения за невнимательность ....

Надо вот так.
Проверил у себя -- работает ...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
use BD_1.dbf in alias right
use BD_2.dbf in alias wrong
Select right
Index On pass tag pass
Select wrong
Set Relation to right.Pass into right
SET SKIP TO Right
Go Top in Right
Go Top in wrong
Replace all Adres with right.Adres
...
Рейтинг: 0 / 0
replace
    #34350399
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При наличии индекса настраивать Set Relation - не обязательно

Код: plaintext
1.
2.
3.
4.
5.
use BD_1.dbf in  0  alias right
use BD_2.dbf in  0  alias wrong

Select wrong
Replace Adres with right.Adres FOR SEEK(wrong.pass,'pass','right')

Этот код предполагает наличие индекса (тэга) pass у таблицы BD_1.dbf.

Для версии VFP9 индекс уже не обязателен. Можно использовать UPDATE-SQL.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / replace
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]