powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / как обновить одно поле одной конкретной записи?
8 сообщений из 8, страница 1 из 1
как обновить одно поле одной конкретной записи?
    #32816814
vitalenergy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В цикле прохожу по таблице
n1reccount=reccount()
for i=1 to n1reccount
goto i
проверяю определенное условие и если оно выполняется нужно поменять значение одного поля текущей записи
Подскажите команду?
...
Рейтинг: 0 / 0
как обновить одно поле одной конкретной записи?
    #32816873
Solmyr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну насколько я помню есть REPLACE FOR.
replace field1 with var1 for <а здесь ваше условие>
и не надо никаких циклов.
А кстати, какой Fox?
...
Рейтинг: 0 / 0
как обновить одно поле одной конкретной записи?
    #32816876
replace Fld1 with Val1

или без for

update Alias set Fld1 = Val1 where <условие>
...
Рейтинг: 0 / 0
как обновить одно поле одной конкретной записи?
    #32816904
vitalenergy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как я понимаю эти команды обновляют множество записей по определенному условию - это не очень удобно в моем случае, даже очень неудобно. Мне же нужно именно текущую запись изменить.
...
Рейтинг: 0 / 0
как обновить одно поле одной конкретной записи?
    #32816923
vitalenergy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дело в том, что условие тоже не простое: нужно сравнить два поля записи и если расхождение меньше,чем на два символа, выбрать текущую запись в другую таблицу.
replace for может с натяжкой и пойдет, но это уже по-моему некоторое извращение
Наверное нужно будет писать функцию
...
Рейтинг: 0 / 0
как обновить одно поле одной конкретной записи?
    #32817325
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как-то так
select * from t1 into table t2 where (len(alltrim(f1))-len(alltrim(f2)))<2

или примерно так
select * from t1 into table t2 where f(f1,f2)<2
где f ваша функция
...
Рейтинг: 0 / 0
как обновить одно поле одной конкретной записи?
    #32817340
AiSK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vitalenergyВ цикле прохожу по таблице
n1reccount=reccount()
for i=1 to n1reccount
goto i
проверяю определенное условие и если оно выполняется нужно поменять значение одного поля текущей записи


Довольно странно - вам известно о существовании SCAN ... ENDSCAN (необязательно подсчитывать число записей и использовать цикл по FOR)?
SCAN
....
здесь и проверяйте ваше условие и меняйте значение
....
ENDSCAN

Можно
GO TOP ( если нужно начинать сканирование с какой хотите позиции, не используйте GO TOP)
DO WHILE NOT EOF()
....
здесь и проверяйте ваше условие и меняйте значение
....
SKIP
ENDDO

Впрочем, непонятно. чем вас групповой Replace не устраивает?
...
Рейтинг: 0 / 0
как обновить одно поле одной конкретной записи?
    #32817551
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если не догадались с первого раза, то команда REPLACE без FOR-условия будет модифицировать только одну текущую запись
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / как обновить одно поле одной конкретной записи?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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