powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как найти определённую запись и отредактировать её через Replace.
6 сообщений из 6, страница 1 из 1
Как найти определённую запись и отредактировать её через Replace.
    #37535287
Never74
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую всех, у меня возникла проблема.

Задача стоит такая:
По фильму и некоторых данных нужно найти эту запись, то есть как бы встать на неё.
После чего выполнить редактирования через Replace .

Проблема:
После поиска не встает на данную запись.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
&&Работа с таблицей "film" 
SELECT  2 
USE "Tables\film" IN  2 

&&Поиск по циклу IF
if film.film_1=ALLTRIM(thisform.text1.value)

&&Редактирование на строке
replace film.kol WITH film.kol-val(thisform.text3.value)
replace film.kol_prodano WITH film.kol_prodano+val(thisform.text3.value)

&&Конец цикла IF
ENDIF

Заранее спасибо :)
...
Рейтинг: 0 / 0
Как найти определённую запись и отредактировать её через Replace.
    #37535296
sqlnew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IF - это не цикл. используй его внутри DO WHILE EOF()=.F. ..... ENDDO
Иначе ты проверяешь условие только для первой записи.
...
Рейтинг: 0 / 0
Как найти определённую запись и отредактировать её через Replace.
    #37535325
Never74
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sqlnew , спасибо за подсказку, но я нашёл немного другой способ пока что.
После replace поставил FOR :)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
FilmName=ALLTRIM(thisform.text1.value)
TimetName=val(thisform.text2.value)

SELECT  2 
USE "Tables\film" IN  2 

replace film.kol WITH film.kol-val(thisform.text3.value) FOR (film.film=FilmName) AND (film.timet=TimetName)
replace film.kol_prodano WITH film.kol_prodano+val(thisform.text3.value) FOR film.film=FilmName AND (film.timet=TimetName)

BROWSE
...
Рейтинг: 0 / 0
Как найти определённую запись и отредактировать её через Replace.
    #37535334
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Never74 sqlnew , спасибо за подсказку, но я нашёл немного другой способ пока что.
После replace поставил FOR :)

Правильно нашел. FOR для того и нужен чтоб циклы не писать.
...
Рейтинг: 0 / 0
Как найти определённую запись и отредактировать её через Replace.
    #37535399
sqlnew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

Довольно давно не практикую... ;-)

А конструкция "replace .... for" не блокирует таблицу?
...
Рейтинг: 0 / 0
Как найти определённую запись и отредактировать её через Replace.
    #37535432
P003
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Обновишь ты не запись, а записи по условию.
2. Почему бы это не сделать через Updatе, примерно так :

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Use "Tables\film" Alias film In  0  Again

m.FilmName = alltrim(thisform.text1.value)
m.TimetName = val(thisform.text2.value)
m.l_val =  val(thisform.text3.value)

UPDATE film SET kol = kol-m.l_val, kol_prodano = kol_prodano+m.l_val;
WHERE film = m.FilmName AND timet = m.TimetName
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как найти определённую запись и отредактировать её через Replace.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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