powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Синтаксис Replace в Fox Pro
58 сообщений из 58, показаны все 3 страниц
Синтаксис Replace в Fox Pro
    #37108348
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите пожалуйста синтаксис команды замены записей в таблицы
Берем столбец1 и меняем значения на "n" при условии что значение столбца1>x
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #37108364
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
упс..
REPLACE столбец1 WITH "n" for столбец1<10
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #37108388
Dag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А чем собственно вопрос? Если Вы сами знаете ответ. Если для всех записей
REPLACE ALL столбец1 WITH "n" for столбец1<10
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #37108404
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chek_FedorПодскажите пожалуйста синтаксис команды замены записей в таблицы

REPLACE Command (Visual FoxPro)
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #37108416
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда писал не знал. Тут еще вопросик нужно перебрать значения в таблице1
и в случае совподения условия менять значения поля на то которое в таблице2
Код: plaintext
REPLACE т1.столбец1 WITH т2.столбец1 for (т1.Столбец2=т2.столбец2) and (т1.Столбец3="const")
Спасибо. FoxPro2.6
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #37108598
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что нет такой возможности?
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #37108619
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chek_FedorЧто нет такой возможности?Такой - это какой?
Кстати, Вы, похоже, не обратили внимание на слово ALL в предложенных Вам примерах.
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #37108651
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обратил только не заострил на этом внимания.
Что касается "такой" там-же написано что при совпадении некого условия берем значение из второй таблицы и заменяем в первой.
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #37108703
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chek_FedorОбратил только не заострил на этом внимания.
Что касается "такой" там-же написано что при совпадении некого условия берем значение из второй таблицы и заменяем в первой.А в предложенных Вам примерах обновление делается не при "совпадении некого условия"? Не для всех, подпадающих под условие? Кстати, что такое совпадение условий?
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #37108779
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пример последний, что там не понятного.
1таблица
1столбец 2столбец
1 а
2 б
3 с
2таблица
1столбец 2столбец 3столбец
1 а 222
1 б выв
1 с цуцу
в случае совпадения 2таблица.1столбец=1 то меняем 2таблица.3столбец=1таблица.2столбец

1столбец 2столбец 3столбец
1 а 1
1 б 2
1 с 3
Так понятно
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #37108846
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chek_FedorПример последний, что там не понятного.
1таблица
1столбец 2столбец
1 а
2 б
3 с
2таблица
1столбец 2столбец 3столбец
1 а 222
1 б выв
1 с цуцу
в случае совпадения 2таблица.1столбец=1 то меняем 2таблица.3столбец=1таблица.2столбец

1столбец 2столбец 3столбец
1 а 1
1 б 2
1 с 3
Так понятноКому? Вам? Может быть. Только вопросы Вы задаете нам и потому они должны быть понятны нам. Ибо понимание Вами Ваших вопросов почему-то не решило Ваши проблемы.
А теперь расскажите почему Вы решили, что значение в какой-то таблице будет влиять на изменение данных в совершенно другой, никоим образом не связанной с первой, таблице? Просто наличие 2таблица.1столбец=1 ?
Может лучше задачу распишиете, а не выбранный Вами способ ее решения?
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #37108866
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так я Вам и пытаюсь описать задачу. 1 как связать таблицы в FoxPro, что в предыдущем примере не ясно? Или Вы издеваетесь?
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #37108882
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chek_FedorТак я Вам и пытаюсь описать задачу. 1 как связать таблицы в FoxPro, что в предыдущем примере не ясно?Нет, неясно. Ибо условие 2таблица.1столбец=1 есть условие отбора строк в 2таблица и никоим образом не указывает хоть на что-то в 1таблице. Или Вы издеваетесь?Кто здесь издевается еще надо выяснить.
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #37108909
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
REPLACE т1.столбец1 WITH т2.столбец1 for (т1.Столбец2=т2.столбец2) and (т1.Столбец3="const")
Вот же пример, если мы натыкаемся в таблице1 на значение столбца3=1 то берем значение столбца2 таблицы1 ищем такое же значение столбца2 таблицы2 берем значение столбца1 таблицы2 и вставляем его в столбца1 таблицы2.
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #37109043
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chek_Fedor
Код: plaintext
REPLACE т1.столбец1 WITH т2.столбец1 for (т1.Столбец2=т2.столбец2) and (т1.Столбец3="const")
Вот же пример, если мы натыкаемся в таблице1 на значение столбца3=1 то берем значение столбца2 таблицы1 ищем такое же значение столбца2 таблицы2 берем значение столбца1 таблицы2 и вставляем его в столбца1 таблицы2.
Ты неправильно понял как REPLACE работает, совсем не так как в селектах.
Твой код равнозначен такому:
Код: plaintext
1.
Переменная2 = т2.столбец2
REPLACE т1.столбец1 WITH т2.столбец1 for (т1.Столбец2=Переменная2) and (т1.Столбец3="const")
тебе надо или SET RELATION использовать или SCAN и по одной записи обрабатывать.
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #37109083
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #37109130
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А есть возможность "скормить" что-то типа
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
sele  0  && переход в свободную рабочую область
use таблица2 
sele  0 
use таблица1
scan && перебор всех записей в таблица1
   переменная = ...
   sele таблица2 
   append blank
   repl поле1 with таблица1.поле1, поле2 with таблица1.поле2, поле3 with переменная
endscan
соответственно с правильными названиями полей и таблиц
Окно Command в FoxPro выполняет по моему только 1 строку.
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #37109395
fore5ta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Chek_FedorА есть возможность "скормить" что-то типаДа, сохраняешь код в файле *.PRG и в командном окне пользуешься командой для редактирования MODI COMM <имя> и командой для выполнения DO <имя>. По логике приведенного тобой кода не достает поиска по таблице значения условия. Просто перейти в рабочую область SELECT недостаточно. Искать можешь по LOCATE, а лучше по SEEK, и потом разумеется проверить результат поиска IF FOUND() ... Если надумаешь искать SEEKом, то перед этим надо построить индекс по полю поиска. А так в целом очень близко к завершению. PS. REPLACE не единственная команда замены значения поля в таблице.
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #37109593
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
sele  0  && переход в свободную рабочую область
USE c:\fpw26\plan1\p5080100.dbf EXCLUSIVE
sele  0 
USE c:\fpw26\plan1\Blok.dbf EXCLUSIVE
scan && перебор всех записей в таблица1
select p5080100
	locate for (p5080100.Kblok=Blok.blok5) and (p5080100.Pred> 1 )
	if found()
        APPEND BLANK
	repl NBlok with Blok.NBL
        else 
 	sele p5080100
	endif
endscan
Где напортачил?
При выполнении условий p5080100.Kblok=Blok.blok5 и p5080100.Pred>1 должны изменятся данные в поле NBlok таблицы p5080100 на значение поля NBL таблицы Blok иначе следующая запись...
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #37109813
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все перепробовал "метод тыка" не работает, подскажите, пожалуйста, что не так...
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #37109863
igorbik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chek_Fedor,
Сдается мне, что между select p5080100 и locate for (p5080100.Kblok=Blok.blok5) and (p5080100.Pred>1) нужно вставить go top
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #37109970
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chek_FedorГде напортачил?
При выполнении условий p5080100.Kblok=Blok.blok5 и p5080100.Pred>1 должны изменятся данные в поле NBlok таблицы p5080100 на значение поля NBL таблицы Blok иначе следующая запись...Т.е. надо пройтись по таблице п5080100 и заменить в ней кблок на подходящие блок.нбл (если найдутся)? Тогда так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
sele  0  && переход в свободную рабочую область
USE c:\fpw26\plan1\p5080100.dbf EXCLUSIVE
sele  0 
USE c:\fpw26\plan1\Blok.dbf EXCLUSIVE
select p5080100
scan for pred= 1  && перебор всех записей в таблица1
select Blok
==Ю      go top
	locate for (p5080100.Kblok=Blok.blok5)
	if found()
 	sele p5080100
          APPEND BLANK
 	repl NBlok with Blok.NBL
	endif
endscan
Это вроде ближе к правде...
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #37110067
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chek_FedorОкно Command в FoxPro выполняет по моему только 1 строку.
Если в окне Command выделить несколько строк, а затем нажать Enter, то будет выполнен весь выделенный кусок

Chek_FedorГде напортачил?
При выполнении условий p5080100.Kblok=Blok.blok5 и p5080100.Pred>1 должны изменятся данные в поле NBlok таблицы p5080100 на значение поля NBL таблицы Blok иначе следующая запись...

Команда APPEND BLANK создает новую запись. Последующая Replace изменяет содержимое этой самой новой записи.
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #37110184
fore5ta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Chek_Fedor Где напортачил?
При выполнении условий p5080100.Kblok=Blok.blok5 и p5080100.Pred>1 должны
изменятся данные в поле NBlok таблицы p5080100 на значение поля NBL таблицы
Blok иначе следующая запись...
Твой код не отражает сформулированную задачу. Если должны _изменяться_ данные в поле p5080100.NBLOK зачем вставляешь новую запись а не собственно изменяешь проверяемую, и второе, если изменению подвергаешь таблицу p5080100.DBF, то почему перебираешь SCANом таблицу BLOK.DBF. Далее, существует "косяк" при проверке условия, если не нашел запись по нужному условию, нет возврата в область со SCANом.
Если ничего не напутано в условии, то можно как одним из способов:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
close databases
select  0 
use BLOK
index on BLOK5 to BLOK
select  0 
use P5080100
scan for P5080100.PRED >  1 
  select BLOK
  seek P5080100.KBLOK
  if found()
    select P5080100
    replace next  1  P5080100.NBLOK with BLOK.NBL
  else
    wait window nowait 'Not found'+ str(P5080100.KBLOK) && если надо поправиш тип
  endif
  select P5080100
endscan
use
select BLOK
use
if file('BLOK.IDX')
  erase BLOK.IDX
endif

return
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #37110459
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chek_Fedor
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
sele  0  && переход в свободную рабочую область
USE c:\fpw26\plan1\p5080100.dbf EXCLUSIVE
sele  0 
USE c:\fpw26\plan1\Blok.dbf EXCLUSIVE
scan && перебор всех записей в таблица1
select p5080100
	locate for (p5080100.Kblok=Blok.blok5) and (p5080100.Pred> 1 )
	if found()
        APPEND BLANK
	repl NBlok with Blok.NBL
        else 
 	sele p5080100
	endif
endscan
Где напортачил?
При выполнении условий p5080100.Kblok=Blok.blok5 и p5080100.Pred>1 должны изменятся данные в поле NBlok таблицы p5080100 на значение поля NBL таблицы Blok иначе следующая запись...
В твоем описании алгоритма ни слова про добавление новых записей.
APPEND BLANK зачем вставил? Убери все заработает как ты написал.
APPEND BLANK - добавляет пустую запись в конец и устанавливает указатель на нее, т.е. следующий за ним Replace пишет в эту пустую запись, а не в ту которую нашел locate

И это просто ненужный код:
Код: plaintext
1.
2.
        else 
 	sele p5080100
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #37110485
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TAPPEND BLANK зачем вставил? Убери все заработает как ты написал.Только из моего кода надо убирать - в коде ТСа не хватает двух переходов по областям :)
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #37110499
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglirDima TAPPEND BLANK зачем вставил? Убери все заработает как ты написал.Только из моего кода надо убирать - в коде ТСа не хватает двух переходов по областям :)
Не путай ТС, он и сам хорошо запутывается.
Я его код смотрел. Нормально там все с переходами. SCAN по таблице Blok, поиск и изменение в таблице p5080100.
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #37110721
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К моему сожалению мой код не работает как нужно т.е. после того как убрал APPEND... блоки вставляются только единожды
если находим p5080100.Pred>1 после "0" блок ставится следующий поставится только после повторения p5080100.Pred="0" и т.д.
Но вот то что мне предложили
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
sele  0  && переход в свободную рабочую область
USE c:\fpw26\plan1\p5080100.dbf EXCLUSIVE
sele  0 
USE c:\fpw26\plan1\Blok.dbf EXCLUSIVE
select p5080100
scan for pred= 1  && перебор всех записей в таблица1
select Blok
  go top
	locate for (p5080100.Kblok=Blok.blok5)
	if found()
 	sele p5080100
  APPEND BLANK
 	repl NBlok with Blok.NBL
	endif
endscan
работает если соответственно исключить APPEND BLANK и изменить условие pred=1 на pred>1
Спасибо.
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #37110787
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет желания засорять еще одной темой форум поэтому отпишу здесь
Есть возможность присвоить некой переменной значение типа String
т.е. убрать имя p5080100.dbf в переменную и использовать ее там где "нужно"
Код: plaintext
1.
2.
3.
Predm="c:\fpw26\plan1\p5080100.dbf"
sele  0  && переход в свободную рабочую область
USE Predm EXCLUSIVE
не "прокатывает"
перед объявлением пробовал объявить как PUBLIC Predm
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #37110799
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chek_Fedor,

это называется "макроподстановки", и это, по мнению многих, ЕстЬ АбсолютноеЪ ЗлоЪ.
Код: plaintext
1.
2.
Predm="c:\fpw26\plan1\p5080100.dbf"
sele  0  && переход в свободную рабочую область
USE &Predm EXCLUSIVE
В вфп можно ещё брать имя переменной в скобки, но не помню, работает ли это в фпд.
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #37110817
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот блин ни слова в книге об этом
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #37110929
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chek_FedorВот блин ни слова в книге об этом
& называется макроподстановка и в книге наверно есть.
Пользоваться макроподстановками желательно в тех случаях когда без них никак не обойтись.
Если есть другие варианты, то лучше не пользоваться, т.к. при активном использовании макроподстановок ошибки в программе искать очень сложно.
попробуй
Код: plaintext
USE (Predm) EXCLUSIVE
не уверен что 2.0 поймет, но в более старших версиях работает.
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #37110940
fore5ta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Chek_FedorНо вот то что мне предложили

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
sele  0  && переход в свободную рабочую область
USE c:\fpw26\plan1\p5080100.dbf EXCLUSIVE
sele  0 
USE c:\fpw26\plan1\Blok.dbf EXCLUSIVE
select p5080100
scan for pred= 1  && перебор всех записей в таблица1
select Blok
  go top
	locate for (p5080100.Kblok=Blok.blok5)
	if found()
 	sele p5080100
  APPEND BLANK
 	repl NBlok with Blok.NBL
	endif
endscan
работает если соответственно исключить APPEND BLANK и изменить условие pred=1 на pred>1
Как я выше уже писал, в этом "работающем" по твоим словам коде заложено предположение о том, что в таблице BLOK.DBF есть все значения для поиска. Как только условие IF вернет false, то в приведенном тобой коде нет возврата в область перебора по SCAN.
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #37110956
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fore5taКак только условие IF вернет false, то в приведенном тобой коде нет возврата в область перебора по SCAN.Я, конечно, мало что помню уже про фпд, но скан ведь сканит свою рабочую область, независимо от того, какая является активной, разве нет?
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #37110972
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglirfore5taКак только условие IF вернет false, то в приведенном тобой коде нет возврата в область перебора по SCAN.Я, конечно, мало что помню уже про фпд, но скан ведь сканит свою рабочую область, независимо от того, какая является активной, разве нет?
Правильно, всегда так было, SCAN работает в той области которая была на момент начала цикла, изменение рабочей области внутри скана никак не влияет на него, т.е. возвращаться в область скана ненужно.
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #37111455
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chek_FedorК моему сожалению мой код не работает как нужно т.е. после того как убрал APPEND... блоки вставляются только единожды
если находим p5080100.Pred>1 после "0" блок ставится следующий поставится только после повторения p5080100.Pred="0" и т.д.
Но вот то что мне предложили
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
sele  0  && переход в свободную рабочую область
USE c:\fpw26\plan1\p5080100.dbf EXCLUSIVE
sele  0 
USE c:\fpw26\plan1\Blok.dbf EXCLUSIVE
select p5080100
scan for pred= 1  && перебор всех записей в таблица1
select Blok
  go top
	locate for (p5080100.Kblok=Blok.blok5)
	if found()
 	sele p5080100
  APPEND BLANK
 	repl NBlok with Blok.NBL
	endif
endscan
работает если соответственно исключить APPEND BLANK и изменить условие pred=1 на pred>1
Спасибо.
locate - довольно медленная команда, т.к. каждый раз перебирает все записи с начала до подходящей условию.
Если книга есть - почитай про использование индексов.
например если в таблице Blok есть индекс по полю blok5 с именем ix_blok5 то можно так написать:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
sele  0 
USE c:\fpw26\plan1\Blok.dbf EXCLUSIVE
set order to ix_blok5
sele  0 
USE c:\fpw26\plan1\p5080100.dbf EXCLUSIVE
set relation to Kblok into Blok
repl for p5080100.pred> 1  and p5080100.Kblok=Blok.blok5 NBlok with Blok.NBL
set relation to
PS locate for всегда с начала начинает, поэтому go top перед ним лишний.
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #37111595
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посоветуйте справочную инфу. Опять вас мучить пришел. Как исключить дубликаты например по столбцу "X" for ....
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #37111694
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chek_FedorПосоветуйте справочную инфу. Опять вас мучить пришел. Как исключить дубликаты например по столбцу "X" for ....
Код: plaintext
1.
2.
3.
4.
5.
6.
select X, count(*) as nCnt from MyTable group by X having nCnt >  1  into dbf tDoubleX
sele tDoubleX
scan
   ...
endscan
sele tDoubles
delete file tDoubleX.dbf 
думаю чего внутри скана писать сам догадаешься.
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #37111710
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По поводу литературы, если память не подводит, была неплохая книга Программирование в FoxPro 2.x автор Попов
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #37111791
Юрий Р.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кстати, советую обратить внимание на опцию IN команды REPLACE. Из личного опыта знаю, что если алиас, в котором делается замена значений полей, не активен, указания имени области в виде префикса ( например: имя алиаса.имя поля ) может оказаться недостаточно. Рекомендую всегда явно указывать имя алиаса в опции IN.

Простите, если вдруг "открыл Америку".
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #37111835
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юрий Р.Кстати, советую обратить внимание на опцию IN команды REPLACE. Из личного опыта знаю, что если алиас, в котором делается замена значений полей, не активен, указания имени области в виде префикса ( например: имя алиаса.имя поля ) может оказаться недостаточно. Рекомендую всегда явно указывать имя алиаса в опции IN.

Простите, если вдруг "открыл Америку".
Америку открыли гораздо позже, в FoxPro 2.x этого не было.
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #37112045
Юрий Р.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T,

Sorry! Не досмотрел.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Синтаксис Replace в Fox Pro
    #38111113
Илья_Кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господа помогите с вопросом. Мне необходимо заменить значение в столбце Gr_z на 'III' если выполняется условие, что F_h_1='M21.4' и Inv=1. Пробую такую конструкцию, но Fox ругается...REPLACE ALL Gr_z WITH 'III' FOR F_h_1='M21.4' AND Inv=1
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #38111162
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Илья_Кот,

И как ругается? Матом?
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #38111168
Илья_Кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IgorNG,
почти матом. да еще и с вот таким знаком /. возможно в Foxe сложное условие выполнить с помощью команды replace? или чтото другое надо использовать?
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #38111193
Ffffffffffffffff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Программисты обычно приводят текст сообщения.
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #38111308
Илья_Кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ffffffffffffffff,

Operator/operand type mismatch.
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #38111347
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Илья_КотFfffffffffffffff,

Operator/operand type mismatch.Ну и что непонятно в этом сообщении? Откуда мысль
возможно в Foxe сложное условие выполнить с помощью команды replace?? На чем она основана? На вере в свою безошибочность?
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #38111355
Илья_Кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Sizov,

омг...что ж вы тут все как звери...
Два вопроса. Оператор replace может выполнить сложное логическое условие или нет? Если да то как?
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #38111364
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Илья_Кот, может, причём именно так, как и написано. Но вот здесь
Илья_КотF_h_1='M21.4' AND Inv=1 вы сравниваете первое поле со строкой, второе - с числом. А типы этих полей какие?
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #38111367
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Илья_Котчто ж вы тут все как звери...Да просто тут тролль пару дней назад пробегал, так, видать, до сих пор успокоиться не могут
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #38111378
Илья_Кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,
типы F_h_1 - numeric
Gr_z - character
Inv - numeric
мне нужно чтобы при истинности условия (F_h_1='M21.4' AND Inv=1) менялось значение в поле Gr_z на III
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #38111386
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Илья_КотSergey Sizov,

омг...что ж вы тут все как звери...Оба-на, простой вопрос о чтении сообщения уже есть проявления "зверя"?Два вопроса. Оператор replace может выполнить сложное логическое условие или нет?Может. Если да то как?Как обычно.
Но сообщение об ошибке говорит об ошибке в Вашей писанине, а не о сложности логического условия. Вы гадаете вместо поиска ошибки в своем коде.
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #38111391
Jonny540
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Илья_Коттипы F_h_1 - numeric... F_h_1='M21.4'Ну какие тут еще вопросы??
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #38111392
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Илья_Котtanglir,
типы F_h_1 - numeric
Gr_z - character
Inv - numeric
мне нужно чтобы при истинности условия ( F_h_1='M21.4' AND Inv=1) менялось значение в поле Gr_z на IIIКак советается выделенное? С каких пор 'M21.4' стало числом и перестало быть строкой?
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #38111393
Илья_Кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Sizov,
я понимаю что ошибся в записи команды. я вот и прошу помочь разобраться где именно.
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #38111398
Илья_Кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Sizov,

все разобрался. просто большая БД с кучей полей. не то имя поля было в условие вписано. спасибо за помощь)
...
Рейтинг: 0 / 0
Синтаксис Replace в Fox Pro
    #38111673
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Илья_Котtanglir,
типы F_h_1 - numeric
Gr_z - character
Inv - numeric
мне нужно чтобы при истинности условия (F_h_1='M21.4' AND Inv=1) менялось значение в поле Gr_z на III

И как вы в числовое значение умудряетесь запихивать M21.4?
...
Рейтинг: 0 / 0
58 сообщений из 58, показаны все 3 страниц
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Синтаксис Replace в Fox Pro
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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