Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Работа с курсорами
|
|||
|---|---|---|---|
|
#18+
Ставить Фокса ради трех строчек кода не хочется. Может быть кто-то подскажет. Вот код. Код: plaintext 1. 2. 3. Курсор cursor1 только что создан несколькими строками ранее и пуст, cursor2 создан и заполнен. Правильно ли я понял что мы просто переписываем данные из cursor2 в cursor1? Если да, то зачем такая сложная конструкция, почему бы не воспользоваться простым селектом? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2003, 01:09 |
|
||
|
Работа с курсорами
|
|||
|---|---|---|---|
|
#18+
Курсор, полученный в результате VFP select-а, -READ ONLY. "cursor1", созданный через CREATE CURSOR ..., создаст иллюзию модификации данных. Для той же цели может подойти(если типы полей в курсорах должны совпадать) Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2003, 02:13 |
|
||
|
Работа с курсорами
|
|||
|---|---|---|---|
|
#18+
2Newb Подобный код используется для того чтобы добавить данные в курсор1 на случай если кугсор2 не совпадает по структуре. В вашем случае один из вариантов предложил vklepko. Для VFP7 и старше можно так select * from cursor2 into cursor2 readwrite ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2003, 10:14 |
|
||
|
Работа с курсорами
|
|||
|---|---|---|---|
|
#18+
не совсем так. В первом случае создается DBF файл на диске с именем cursor2 А в вашем случае >>select * from cursor2 into cursor2 readwrite в каталоге для временных файлов , будет создан временный файл с именем которойе можно узнать по DBF('Cursor2') и при его закрытии он будет удален ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2003, 13:02 |
|
||
|
Работа с курсорами
|
|||
|---|---|---|---|
|
#18+
Николай. С этого места поподробнее. О каком DBF ты говоришь? CREATE CURSOR test (test i) ?DBF('test') Более того ?FILE(DBF('test')) Вернет .F. Т.е. что по команде CREATE CURSOR, что по команде SELECT ... INTO CURSOR ... будет создана одна и та же структура, именуемая в FoxPro "курсор". И ничем не отличающиеся друг от друга. Разве что по-умолчанию, курсор созданный командой Select-SQL имеет статус Read-Only, но это можно и изменить как уже показали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2003, 14:14 |
|
||
|
Работа с курсорами
|
|||
|---|---|---|---|
|
#18+
2 ВладимирМ: На Fox <=2.6 CREATE CURSOR aa (a C(1)) ? DBF('AA') вернет C:\23443243.tmp (условно), но никак не .F. На более поздних версиях Fox (у Вас явно оно) - не знаю. 2 NewB: Слушайте Crip, он - авторитет :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2003, 11:01 |
|
||
|
Работа с курсорами
|
|||
|---|---|---|---|
|
#18+
2Mik Prokoshin ? DBF('AA') Вообще-то у Владимира М было ?FILE(DBF('test')). Слушайте Crip, он - авторитет :-) В фоксе авторитет Владимира М повыше будет. Мне лично неизвестен более опытный фокс-программист чем Владимир М и спорить с ним в таких вопросах довольно сложно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2003, 12:02 |
|
||
|
Работа с курсорами
|
|||
|---|---|---|---|
|
#18+
Хе-хе, ребята, там где надо говорить про базовые фичи FoxPro я готов отстаивать свои десять лет опыта :-) У Владимира М : 1) Присутствует тип I, которого в старых версиях нет. Заменяем на любой другой: CREATE CURSOR test (test N(10)) 2) ? DBF('test') возвращает full-qualified temporary filename (DBF file format, расширение TMP). Отмечу, что на старых версиях Фокс функция DBF('') в отдельных случаях (bug/feature ?) был регистрозависимым, т.е. мог гарантированно работать только при Uppercase (рекомендовал бы DBF('TEST')) 3) ? FILE(DBF('TEST')) = .F. - это даже смешно. А как насчет предварительно SET COMPATIBILITY ON ? Без него путь не учитывается. Так что Владимир просто поторопился, скорее всего, с кем не бывает. 2 Newb: А прием этот совершенно стандартный, используется для того, о чем сказал Crip. Причем в довершение скажу, что иначе сделать APPEND FROM курсора в таблицу - невозможно. А SELECT ... readwrite раньше не было, что очень осложняло жизнь :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2003, 15:27 |
|
||
|
Работа с курсорами
|
|||
|---|---|---|---|
|
#18+
ИЗВИНИТЕ НО Владимир Максимов не поторопился. Он прав. Единственное что могло быть упущено здесь -- так это регистр :) но не в нем суть. приведу выдержку из статьи |> "Однако если курсор - это временная таблица, то это еще не значит, что эта временная таблица будет непременно физически расположена на диске. Вполне возможно, что вся временная таблица целиком поместится в оперативную память. Т.е. функция DBF('TmpTable') будет исправно показывать некий временный файл, но попытка найти его физически на диске окончится неудачей и функция FILE(DBF('TmpTable')) вернет .F." О том что это так и есть -- предлагаю убедится выполнив простой пример из этой ветви , который ВладимирМ и предложил.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2003, 16:39 |
|
||
|
Работа с курсорами
|
|||
|---|---|---|---|
|
#18+
Возможно, что и я поторопился. Я конечно же подразумевал FPD, поскольку с FPW вплотную не работал, а под ДОС это работает - 100%. Но судя по вопросу Newb - это именно FPD :-) Владимир, мои извинения. Каждый в чем-то прав :-) P.S. И какие только вещи не вылазят в upgrade uncompatibility... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2003, 17:04 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=32288453&tid=1597737]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
57ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 364ms |

| 0 / 0 |
