|
|
|
как лучше поступить?
|
|||
|---|---|---|---|
|
#18+
создаю курсор create cursor my_curs1 (a c(50), b C(10), d C(50), d C(10)) есть таблица в которой все поля мемо. Из них считываю значения по строчно (код считывания есть). не знаю как лучше заносить в курсор записи. или через массив (insert) или через вечный replace построчно. посоветуйте плиз что эффективнее и лучше! Может есть какие-то другие предложения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2005, 15:03 |
|
||
|
как лучше поступить?
|
|||
|---|---|---|---|
|
#18+
А параметризованные LV/RV не подойдут? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2005, 15:24 |
|
||
|
как лучше поступить?
|
|||
|---|---|---|---|
|
#18+
А что это? И как Это использовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2005, 17:19 |
|
||
|
как лучше поступить?
|
|||
|---|---|---|---|
|
#18+
НедоходящийА что это? И как Это использовать? Похоже я недопонял вопроса. Это ты мемо поля парсишь в обыкновенные? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2005, 17:26 |
|
||
|
как лучше поступить?
|
|||
|---|---|---|---|
|
#18+
Да. но как лучше и эффективнее это сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2005, 17:27 |
|
||
|
как лучше поступить?
|
|||
|---|---|---|---|
|
#18+
Действительно, не понятно что Вам надо посоветовать... Если вопрос о том, что быстрее append blank + replace or Insert, то вроде как Insert считается быстрее... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2005, 18:53 |
|
||
|
как лучше поступить?
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2005, 20:10 |
|
||
|
как лучше поступить?
|
|||
|---|---|---|---|
|
#18+
C этим понятно, спасибо. такой вопрос. что здесь не хватает? чтоб этот код заработал ValLine1 = '1' select frt replace fil with select alltrim(feild_name) from urep_filter where nrec = val(ValLine1) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2005, 12:41 |
|
||
|
как лучше поступить?
|
|||
|---|---|---|---|
|
#18+
Недоходящий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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2005, 14:46 |
|
||
|
как лучше поступить?
|
|||
|---|---|---|---|
|
#18+
to ВладимирМ делаю так как Вы написали. Результат: в курсоре после проведения кода в курсор загоняеться только одно значение во всех строках. т.е. когда дело доходит до последнего значения которое загоняеться в ValLine1, то все строки содержат запись вот этого последнего значения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2005, 16:41 |
|
||
|
как лучше поступить?
|
|||
|---|---|---|---|
|
#18+
Тогда объясните, что именно Вы хотите получить в результате. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2005, 18:38 |
|
||
|
как лучше поступить?
|
|||
|---|---|---|---|
|
#18+
Я хочу чтоб по совпадению значений в VAL(ValLine1) и в urep_filter.nrec заносилось значение AllTrim(urep_filter.Field_name). Оно работает, НО, когда она находит совпадение, то замещает значением AllTrim(urep_filter.Field_name) все строки!. Вот в чем проблема. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2005, 18:45 |
|
||
|
как лучше поступить?
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 01:47 |
|
||
|
как лучше поступить?
|
|||
|---|---|---|---|
|
#18+
to Igor Korolyov Я хелп читал. много вариантов перепробывал. пытаюсь по Вашему примеру, все равно ругаеться что неправильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 12:25 |
|
||
|
как лучше поступить?
|
|||
|---|---|---|---|
|
#18+
НедоходящийЯ хочу чтоб по совпадению значений в VAL(ValLine1) и в urep_filter.nrec заносилось значение AllTrim(urep_filter.Field_name). КУДА должно заноситься это значение? Если это значение должно заноситься в другую таблицу, то КАКУЮ именно ЗАПИСЬ из таблицы urep_filter надо брать для записи в эту другую таблицу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2005, 00:15 |
|
||
|
как лучше поступить?
|
|||
|---|---|---|---|
|
#18+
Hi Недоходящий! Если хелп читали - то укажите цитату, откуда был взят такой синтаксис. Если Вам кто-то такое тут посоветовал - укажите где Вам это было предложено - ДОСЛОВНО как указано в сообщении за 21 ноября 2005 г. 11:41. Я в упор не вижу нигде таких советов. А другие, правильные и вполне работающие варианты у Вас конкретно не работают, хотя вот у меня например всё работает и вопросов не вызывает, и к чему бы это? Кроме того желательно всегда предельно чётко описывать задачу, а также предоставить тестовые данные - что есть, и что из этого надо получить. При этом оформить это (кроме конечно результата) надо как скрипт создающий курсоры (или таблицы если это критично) и наполняющий их тестовыми данными - т.е. CREATE CURSOR ... + группа INSERT INTO ... - дабы любой мог скопировать это в prg файл, запустить и далее экспериментировать. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2005, 00:37 |
|
||
|
как лучше поступить?
|
|||
|---|---|---|---|
|
#18+
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 ...'? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2005, 10:56 |
|
||
|
как лучше поступить?
|
|||
|---|---|---|---|
|
#18+
Пожалуйста объясните, в примере select naimen as dds from line where есть 'as dds' который показывает результат. Как этот результат занести в переменную и не отображать на экран результат? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2005, 12:24 |
|
||
|
как лучше поступить?
|
|||
|---|---|---|---|
|
#18+
Похоже, ты просто не понимаешь того, о чем тебя спрашивают. Делаем тестовые данные Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Предположим, я нашел в таблице tabChild запись, у которой значение поля nRec равно нужному мне значению. Например, 1. Определил, что в найденной записи значение поля Field_Name="usd" И вот теперь основной вопрос: В какую запись таблицы tabMain я должен занести это найденное значение? Как видите, записей 2. Заменять обе? Нет? Тогда какую? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2005, 22:47 |
|
||
|
как лучше поступить?
|
|||
|---|---|---|---|
|
#18+
Hi Недоходящий! > Фокс Ваш пример обругивает как неправильный синтаксис Ну конечно - ты же потрудился как можно более подробно изложить свою проблему, указал какой версией VFP пользуешься :) Или надеешься на телепатию? Извини, но я не собираюсь гадать какая у тебя версия фокса. Не указал - так теперь и не жалуйся что на твоей версии это не работает :) А внятного примера исходных данных и результата так и нет - вот Владимиру не лень - он решил погадать слегка чего же тебе нужно то получить, повытягивать клещами информацию из тебя (можно подумать это ему надо а не тебе)... А мне уже лень, извини... Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 02:51 |
|
||
|
как лучше поступить?
|
|||
|---|---|---|---|
|
#18+
фокс 6 to ВладимирМ Начиная с первои и вниз до тех пор пока условия по полю nRec не закончаться. to Igor Korolyov Я Вас понимаю. Мне очень жаль что я не могу изложить правильно сути проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 10:40 |
|
||
|
как лучше поступить?
|
|||
|---|---|---|---|
|
#18+
Недоходящийфокс 6 to ВладимирМ Начиная с первои и вниз до тех пор пока условия по полю nRec не закончаться. Не понял. Тогда что Вам не нравиться? Я нашел в таблице tabChild запись, удовлетворяющую нужному условию. Это ОДНА запись. И заменяю ВСЕ записи в таблице tabMain, поскольку они ВСЕ удовлетворяют этому условию. Точнее, в таблице tabMain просто НИКАКИЕ условия не проверяются. То, что Вы и хотели. Какие претензии-то? Или Вы все-таки хотели что-то другое? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2005, 19:56 |
|
||
|
как лучше поступить?
|
|||
|---|---|---|---|
|
#18+
2 ВладимирМ да наверное другое. я хотел после append blank одной строчкой replace заменить запись по условию (причем условие меняеться не меняеться только поле по которому производиться условие) из другой таблицы. + это все будет повторяться через for. Вот что я хотел. много пробывал и ничего ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2005, 20:12 |
|
||
|
как лучше поступить?
|
|||
|---|---|---|---|
|
#18+
Опять ничего не понял. Давай так: Создай у себя 2 эти таблички. Второстепенные поля не добавляй. Оставь только то, что имеет отношение к проблеме. Добавь в эти таблички несколько записей. Теперь сделай третью табличку, куда помести тот результат, который ты хочешь получить. Причем этот результат получен по тем тестовым данным, которые ты занес в предыдущие 2 таблички. Все это упакуй в ZIP-архив и положи сюда во вложение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2005, 20:48 |
|
||
|
как лучше поступить?
|
|||
|---|---|---|---|
|
#18+
2 ВладимирМ итак, проблема втом чтоб одной командой зделать действия: 1) по порядку начиная с первой строки взять значение из табл2 поля nr 2) занести в табл3 значение из табл1 поля аа по условию, что значение взятое из табл2 = значению табл1 поля сс. И как все это поместить в Replace? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2005, 11:58 |
|
||
|
как лучше поступить?
|
|||
|---|---|---|---|
|
#18+
Вот это надо? Код: plaintext 1. 2. 3. Чтобы это поместить в Replace в той таблице, которая будет модифицироваться должно быть поле, со значением Table1.cc или Table2.nr. Т.е. нужна "связка", "указатель", определяющая какие же именно записи необходимо модифицировать. В данном случае, это условие Table1.cc=Table2.nr. А что есть в замен в твоей таблице? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2005, 13:33 |
|
||
|
как лучше поступить?
|
|||
|---|---|---|---|
|
#18+
2 ВладимирМ не мог ответить потому, что пришлось переключиться на другую работу. Пробывал этот код он не работает. "INNER JOIN " - что это за команда. в хелпе ничего про нее нет, даже упоминания. >>А что есть в замен в твоей таблице? Не совсем понял вопроса. Что имеется ввиду? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2005, 12:59 |
|
||
|
как лучше поступить?
|
|||
|---|---|---|---|
|
#18+
НедоходящийПробывал этот код он не работает. "INNER JOIN " - что это за команда. в хелпе ничего про нее нет, даже упоминания. Это не команда. Это опция команды Select-SQL. Появилась, начиная с версии VFP3. Внимательнее читайте HELP. Или у Вас Fox2x? Недоходящий>>А что есть в замен в твоей таблице? Не совсем понял вопроса. Что имеется ввиду? Это именно тот вопрос, на который Вы упорно не хотите отвечать. Весь топик разными способами от Вас пытались получить на него ответ. Вы же его просто игнорировали. Вас не устраивает, что замена происходит во ВСЕХ записях. Тогда в каких записях должна произойти замена? В текущей записи? Перечитайте все вопросы этого топика с самого начала. Я уже и не знаю, как Вам это по другому объяснить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2005, 16:25 |
|
||
|
как лучше поступить?
|
|||
|---|---|---|---|
|
#18+
Если я правильно понял, то просще всего так: Берем таблицу, в которой проверяем истинность значения select table1 scan проверяем истинность условия if поле1 = чему-то and поле2=что-то еще и т.д replase ..... endif endscan ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2005, 17:04 |
|
||
|
|

start [/forum/topic.php?all=1&fid=41&tid=1592825]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
174ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 203ms |
| total: | 450ms |

| 0 / 0 |
