powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / как лучше поступить?
25 сообщений из 29, страница 1 из 2
как лучше поступить?
    #33387084
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
создаю курсор create cursor my_curs1 (a c(50), b C(10), d C(50), d C(10))
есть таблица в которой все поля мемо. Из них считываю значения по строчно (код считывания есть). не знаю как лучше заносить в курсор записи. или через массив (insert) или через вечный replace построчно. посоветуйте плиз что эффективнее и лучше! Может есть какие-то другие предложения?
...
Рейтинг: 0 / 0
как лучше поступить?
    #33387168
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А параметризованные LV/RV не подойдут?
...
Рейтинг: 0 / 0
как лучше поступить?
    #33387524
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что это? И как Это использовать?
...
Рейтинг: 0 / 0
как лучше поступить?
    #33387545
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НедоходящийА что это? И как Это использовать?

Похоже я недопонял вопроса. Это ты мемо поля парсишь в обыкновенные?
...
Рейтинг: 0 / 0
как лучше поступить?
    #33387549
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да. но как лучше и эффективнее это сделать?
...
Рейтинг: 0 / 0
как лучше поступить?
    #33387714
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Действительно, не понятно что Вам надо посоветовать... Если вопрос о том, что быстрее append blank + replace or Insert, то вроде как Insert считается быстрее...
...
Рейтинг: 0 / 0
как лучше поступить?
    #33388473
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Недоходящий!

memo поля нуждаются в преобразовании или нет? Если нет (и версия фокса
позволяет) то логичнее всего написать
INSERT INTO my_curs1 (...) SELECT ... FROM my_table. Если фокс слишком
древний - то SELECT ... INTO CURSOR tmp1 + APPEND FROM DBF("tmp1") - т.е.
через промежуточный курсор. Также может пригодится способ "хитрого" UNION
запроса описанный Владимиром Максимовым в теме
http://www.sql.ru/forum/actualthread.aspx?tid=236236 я не понимаю
чего ты там не понял - вроде всё прозрачно...
Если преобразования нужны, но они тривиальные, или осуществляются через
UDF - то просто в верхней команде после SELECT нужно не просто поля
перечислить, а соответствующие функции конвертации.
Если же преобразования нетривиальные, и скажем из одной записи с memo-полями
должно получится несколько записей в курсоре - то тогда SCAN цикл (возможно
с вложенным внутри FOR или DO WHILE циклом) с переносом данных через INSERT
INTO my_curs1 (...) VALUES (...) - ну или если ты "разбираешь" memo поля в
многострочный массив - то APPEND FROM ARRAY ...

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
как лучше поступить?
    #33389733
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
C этим понятно, спасибо.
такой вопрос. что здесь не хватает? чтоб этот код заработал
ValLine1 = '1'
select frt
replace fil with select alltrim(feild_name) from urep_filter where nrec = val(ValLine1)
...
Рейтинг: 0 / 0
как лучше поступить?
    #33390207
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НедоходящийC этим понятно, спасибо.
такой вопрос. что здесь не хватает? чтоб этот код заработал
ValLine1 = '1'
select frt
replace fil with select alltrim(feild_name) from urep_filter where nrec = val(ValLine1)
Возможностей FoxPro. ТАК оно работать не будет вообще. Если в таблице urep_filter есть индекс по полю nrec, то можно написать так:

Код: plaintext
1.
2.
3.
select frt
REPLACE fil WITH AllTrim(urep_filter.Field_name) ;
	FOR SEEK(VAL(ValLine1),"urep_filter","nrec")
...
Рейтинг: 0 / 0
как лучше поступить?
    #33390608
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to ВладимирМ
делаю так как Вы написали. Результат: в курсоре после проведения кода в курсор загоняеться только одно значение во всех строках. т.е. когда дело доходит до последнего значения которое загоняеться в ValLine1, то все строки содержат запись вот этого последнего значения.
...
Рейтинг: 0 / 0
как лучше поступить?
    #33390915
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда объясните, что именно Вы хотите получить в результате.
...
Рейтинг: 0 / 0
как лучше поступить?
    #33390923
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я хочу чтоб по совпадению значений в VAL(ValLine1) и в urep_filter.nrec заносилось значение AllTrim(urep_filter.Field_name). Оно работает, НО, когда она находит совпадение, то замещает значением AllTrim(urep_filter.Field_name) все строки!. Вот в чем проблема.
...
Рейтинг: 0 / 0
как лучше поступить?
    #33391202
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Недоходящий!

> replace fil with select alltrim(feild_name) from urep_filter where nrec =
> val(ValLine1)

REPLACE ... FROM ... WHERE ...

Господи, ну откуда можно было взять столько откровенной чуши. Вы хоть
изредка удосуживаетесь в хелп заглянуть, или просто пишете чего в голову
взбредёт, а потом хотите чтобы вам растолковали почему оно не работает?
Ошибка синтаксиса - вот и не работает.

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
как лучше поступить?
    #33392076
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Igor Korolyov
Я хелп читал. много вариантов перепробывал. пытаюсь по Вашему примеру, все равно ругаеться что неправильно.
...
Рейтинг: 0 / 0
как лучше поступить?
    #33393611
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НедоходящийЯ хочу чтоб по совпадению значений в VAL(ValLine1) и в urep_filter.nrec заносилось значение AllTrim(urep_filter.Field_name).

КУДА должно заноситься это значение?

Если это значение должно заноситься в другую таблицу, то КАКУЮ именно ЗАПИСЬ из таблицы urep_filter надо брать для записи в эту другую таблицу.
...
Рейтинг: 0 / 0
как лучше поступить?
    #33393619
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Недоходящий!

Если хелп читали - то укажите цитату, откуда был взят такой синтаксис. Если
Вам кто-то такое тут посоветовал - укажите где Вам это было предложено -
ДОСЛОВНО как указано в сообщении за 21 ноября 2005 г. 11:41.
Я в упор не вижу нигде таких советов. А другие, правильные и вполне
работающие варианты у Вас конкретно не работают, хотя вот у меня например
всё работает и вопросов не вызывает, и к чему бы это?
Кроме того желательно всегда предельно чётко описывать задачу, а также
предоставить тестовые данные - что есть, и что из этого надо получить. При
этом оформить это (кроме конечно результата) надо как скрипт создающий
курсоры (или таблицы если это критично) и наполняющий их тестовыми данными -
т.е. CREATE CURSOR ... + группа INSERT INTO ... - дабы любой мог скопировать
это в prg файл, запустить и далее экспериментировать.

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
как лучше поступить?
    #33394040
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to ВладимирМ
значение должно заноситься в строку курсора 'frt' поля 'fil'
таблица urep_filter имеет много полей и в ней есть поля : nrec(I) - код записи, Field_name(C) - название столбцов. записи нужно заносить в курсор 'frt.fil' из urep_filter.Field_name где urep_filter.nrec = ValLine1 (ValLine1 - будет иметь значния 1,7,5)
urep_filter
------------------------------
Field_name (C(40)) | nrec(I)
-------------------|----------
usd | 1
grn | 2
nds | 5
kpd | 7
------------------------------

и т.д.

to Igor Korolyov

Фокс Ваш пример обругивает как неправильный синтаксис, пробовал много вариантов и все ему не нравиться. Вы бы не могли мне привести пример кода 'REPLACE ... FROM ... WHERE ...'?
...
Рейтинг: 0 / 0
как лучше поступить?
    #33394423
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пожалуйста объясните, в примере select naimen as dds from line where есть 'as dds' который показывает результат. Как этот результат занести в переменную и не отображать на экран результат?
...
Рейтинг: 0 / 0
как лучше поступить?
    #33395921
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже, ты просто не понимаешь того, о чем тебя спрашивают.

Делаем тестовые данные

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
* Таблица, откуда будут браться данные
CREATE CURSOR tabChild (Field_name C( 40 ), nRec I)
INDEX ON nRec TAG nRec
INSERT INTO tabChild (Field_name, nRec) VALUES ("usd",  1 )
INSERT INTO tabChild (Field_name, nRec) VALUES ("grn",  2 )
INSERT INTO tabChild (Field_name, nRec) VALUES ("nds",  5 )
INSERT INTO tabChild (Field_name, nRec) VALUES ("kpd",  7 )

* Таблица, куда надо записать
CREATE CURSOR tabMain (Fil C( 40 ))
INSERT INTO tabMain (Fil) VALUES ("Строка 1")
INSERT INTO tabMain (Fil) VALUES ("Строка 2")

Предположим, я нашел в таблице tabChild запись, у которой значение поля nRec равно нужному мне значению. Например, 1.

Определил, что в найденной записи значение поля Field_Name="usd"

И вот теперь основной вопрос:

В какую запись таблицы tabMain я должен занести это найденное значение?

Как видите, записей 2. Заменять обе? Нет? Тогда какую?
...
Рейтинг: 0 / 0
как лучше поступить?
    #33396056
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Недоходящий!

> Фокс Ваш пример обругивает как неправильный синтаксис

Ну конечно - ты же потрудился как можно более подробно изложить свою
проблему, указал какой версией VFP пользуешься :) Или надеешься на
телепатию? Извини, но я не собираюсь гадать какая у тебя версия фокса. Не
указал - так теперь и не жалуйся что на твоей версии это не работает :)
А внятного примера исходных данных и результата так и нет - вот Владимиру не
лень - он решил погадать слегка чего же тебе нужно то получить, повытягивать
клещами информацию из тебя (можно подумать это ему надо а не тебе)... А мне
уже лень, извини...

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
как лучше поступить?
    #33396443
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
фокс 6
to ВладимирМ

Начиная с первои и вниз до тех пор пока условия по полю nRec не закончаться.

to Igor Korolyov
Я Вас понимаю. Мне очень жаль что я не могу изложить правильно сути проблемы.
...
Рейтинг: 0 / 0
как лучше поступить?
    #33401072
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недоходящийфокс 6
to ВладимирМ
Начиная с первои и вниз до тех пор пока условия по полю nRec не закончаться.

Не понял. Тогда что Вам не нравиться?

Я нашел в таблице tabChild запись, удовлетворяющую нужному условию. Это ОДНА запись. И заменяю ВСЕ записи в таблице tabMain, поскольку они ВСЕ удовлетворяют этому условию. Точнее, в таблице tabMain просто НИКАКИЕ условия не проверяются.

То, что Вы и хотели. Какие претензии-то? Или Вы все-таки хотели что-то другое?
...
Рейтинг: 0 / 0
как лучше поступить?
    #33401099
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ВладимирМ
да наверное другое. я хотел после append blank одной строчкой replace заменить запись по условию (причем условие меняеться не меняеться только поле по которому производиться условие) из другой таблицы. + это все будет повторяться через for. Вот что я хотел. много пробывал и ничего
...
Рейтинг: 0 / 0
как лучше поступить?
    #33401127
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опять ничего не понял. Давай так:

Создай у себя 2 эти таблички. Второстепенные поля не добавляй. Оставь только то, что имеет отношение к проблеме.

Добавь в эти таблички несколько записей.

Теперь сделай третью табличку, куда помести тот результат, который ты хочешь получить. Причем этот результат получен по тем тестовым данным, которые ты занес в предыдущие 2 таблички.

Все это упакуй в ZIP-архив и положи сюда во вложение.
...
Рейтинг: 0 / 0
как лучше поступить?
    #33410637
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ВладимирМ

итак, проблема втом чтоб одной командой зделать действия:
1) по порядку начиная с первой строки взять значение из табл2 поля nr
2) занести в табл3 значение из табл1 поля аа по условию, что значение взятое из табл2 = значению табл1 поля сс. И как все это поместить в Replace?
...
Рейтинг: 0 / 0
25 сообщений из 29, страница 1 из 2
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / как лучше поступить?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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