powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / seek или locate
14 сообщений из 14, страница 1 из 1
seek или locate
    #35525786
noobb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток.
всегда юзал scan .. endscan медленная функция=(

возможно ли с помощью seek ... или locate реализовать такое

select tab1
go top
scan
update tab2 set fio=tab1.fio where tab1.id=id
endscan

спасибо!
...
Рейтинг: 0 / 0
seek или locate
    #35525804
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noobbДоброго времени суток.
всегда юзал scan .. endscan медленная функция=(

М-да, а мужики-то и не знают...
[/quot]
возможно ли с помощью seek ... или locate реализовать такое

select tab1
go top
scan
update tab2 set fio=tab1.fio where tab1.id=id
endscan

спасибо![/quot]
В общем-то, для команды update scan нужен как зайцу стоп-сигнал. Не надо путать команды replace и update, хоть и ведут они себя иногда одинаково. После разборок с разницей этих команд обычно и скорость "функции" scan почему-то резко увеличивается. :)
...
Рейтинг: 0 / 0
seek или locate
    #35526024
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей хотел сказать, что начиная с версии VFP9 можно в команде Update-SQL делать обновление записей одной таблицы данными из другой во всех всвязанных записях. Подробнее смотри здесь

Как изменить значения в одной таблице данными из другой

Если версия младше VFP9 и индекса у таблицы tab1 по полю id нет, то восершенно не важно, что использовать REPLACE или UPDATE. От SCAN никуда не денешся. Придется использовать.
...
Рейтинг: 0 / 0
seek или locate
    #35526924
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а
go top
не лишняя строчка? скан всегда начинает сверху кажется
...
Рейтинг: 0 / 0
seek или locate
    #35526934
Galyamov Rinat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> go top
> не лишняя строчка?

В данном случае лишняя

> скан всегда начинает сверху кажется

scan while начинает с текущей записи


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
seek или locate
    #35527076
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noobbselect tab1
go top
scan
update tab2 set fio=tab1.fio where tab1.id=id
endscan

Если есть индекс по tab1.id то можно так:
Код: plaintext
1.
2.
3.
4.
5.
use TAB1 order ID
sele  0 
use tab2
set relation to ID into TAB1
repl in TAB2 for (TAB2.ID = TAB1.ID) FIO with TAB1.FIO
set relation to 
...
Рейтинг: 0 / 0
seek или locate
    #35527185
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T noobbselect tab1
go top
scan
update tab2 set fio=tab1.fio where tab1.id=id
endscan

Если есть индекс по tab1.id то можно так:
Код: plaintext
1.
2.
3.
4.
5.
use TAB1 order ID
sele  0 
use tab2
set relation to ID into TAB1
repl in TAB2 for (TAB2.ID = TAB1.ID) FIO with TAB1.FIO
set relation to 

Настройка Relation - лишняя операция. Посмотри по приведенной ссылке.

"Фишка" в том, что функция SEEK() переводит указатель записи на найденную запись. Это значит, что если в команде REPLACE в FOR-условии добавить функцию SEEK(), то получим автоматическое перемещение на нужную запись подчиненной таблицы и без предварительной настройки RELATION.
...
Рейтинг: 0 / 0
seek или locate
    #35532662
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TЕсли есть индекс по tab1.id то можно так:
Код: plaintext
1.
2.
3.
4.
5.
use TAB1 order ID
sele  0 
use tab2
set relation to ID into TAB1
repl in TAB2 for (TAB2.ID = TAB1.ID) FIO with TAB1.FIO
set relation to 


Еще начиная с 2.0 как-то привычнее было это делать, например, так:
Код: plaintext
1.
2.
3.
select tab2
set relation to ID into TAB1
repl all for !eof('tab1') FIO with TAB1.FIO
set relation to
...
Рейтинг: 0 / 0
seek или locate
    #35532681
авторЕще начиная с 2.0

в 9-й версии считаю такое безобразием


это апдейт
и писать нужно так


Код: plaintext
1.
2.
3.
update tab2 set FIO with TAB1.FIO ;
    from TAB1 ;
    wher tab2.id=tab1.id
...
Рейтинг: 0 / 0
seek или locate
    #35532682
12345зайчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
update tab2 set FIO = TAB1.FIO ;
from TAB1 ;
wher tab2.id=tab1.id
...
Рейтинг: 0 / 0
seek или locate
    #35532751
apapacy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Galyamov Rinat

> go top
> не лишняя строчка?

В данном случае лишняя

> скан всегда начинает сверху кажется

scan while начинает с текущей записи


Posted via ActualForum NNTP Server 1.4

У while немного другой смысл. Это как бы сказать прерыватель (exit on not true)
Код: plaintext
1.
2.
3.
4.
5.
Scope 

Specifies a range of records to be scanned. Only the records within the range are scanned. The scope clauses are: ALL, NEXT nRecords, RECORD nRecordNumber, and REST. For more information on scope clauses, see the Scope Clauses online topic.

The default scope for SCAN is all records (ALL).
...
Рейтинг: 0 / 0
seek или locate
    #35532858
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
12345вышелзайчикв 9-й версии считаю такое безобразием
то, что update - понятно и так... :) НО если у человека, скажем, VFP7 ?

А вообще, вопрос, как я понял, стоял о scan...endscan, отказе от него, использовании relation и контекста...
...
Рейтинг: 0 / 0
seek или locate
    #35533363
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нуб давно ушел
а кучка скучающих фокспрошников осталась
...
Рейтинг: 0 / 0
seek или locate
    #35533426
автора кучка скучающих фокспрошников осталась

мы не скучаем - резвився в промежутках между глотком чаю и
решением своих задач - иначе мозг поплавится

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

хотя зарплата на 4 т. меньше чем на фоксе+сикль у меня сейчас ... - шутка
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / seek или locate
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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