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

Задача стоит такая:
По фильму и некоторых данных нужно найти эту запись, то есть как бы встать на неё.
После чего выполнить редактирования через 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
20.11.2011, 09:22
    #37535296
sqlnew
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как найти определённую запись и отредактировать её через Replace.
IF - это не цикл. используй его внутри DO WHILE EOF()=.F. ..... ENDDO
Иначе ты проверяешь условие только для первой записи.
...
Рейтинг: 0 / 0
20.11.2011, 10:58
    #37535325
Never74
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как найти определённую запись и отредактировать её через Replace.
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
20.11.2011, 11:27
    #37535334
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как найти определённую запись и отредактировать её через Replace.
Never74 sqlnew , спасибо за подсказку, но я нашёл немного другой способ пока что.
После replace поставил FOR :)

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

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

А конструкция "replace .... for" не блокирует таблицу?
...
Рейтинг: 0 / 0
20.11.2011, 13:39
    #37535432
P003
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как найти определённую запись и отредактировать её через Replace.
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
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как найти определённую запись и отредактировать её через Replace. / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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