powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / VFP 9. Обязательно ли переделывать курсор что бы сделать его ReadWrite
14 сообщений из 14, страница 1 из 1
VFP 9. Обязательно ли переделывать курсор что бы сделать его ReadWrite
    #34701063
splayn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VFP 9. Обязательно ли переделывать курсор что бы сделать его ReadWrite?
...
Рейтинг: 0 / 0
VFP 9. Обязательно ли переделывать курсор что бы сделать его ReadWrite
    #34701106
Совсем необязательно. Если он создан командой Create cursor, то он уже "писабельный", а если создается в результате Select ... into cursor ..., то достаточно в эту команду добавить ReadWrite.
...
Рейтинг: 0 / 0
VFP 9. Обязательно ли переделывать курсор что бы сделать его ReadWrite
    #34701137
splayn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Курсор уже создан select... into crusor, но без ReadWrite. А теперь выясняется, что ему необходимы индексы... что делать передылать курсор или есть возможность сделать его Readwrite?
...
Рейтинг: 0 / 0
VFP 9. Обязательно ли переделывать курсор что бы сделать его ReadWrite
    #34701319
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Один индекс можно создать в любом случае. Если индексов надо больше, тогда либо переоткрывай курсор, либо допиши опцию ReadWrite в команде Select-SQL.
...
Рейтинг: 0 / 0
VFP 9. Обязательно ли переделывать курсор что бы сделать его ReadWrite
    #34706203
_PSerg_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кода до еще в FPD был у меня такой код:
* На момент выполнения кода активным является READ-курсор
nSelect = SELECT()
cDBF = DBF()
SELECT 0
USE (cDBF) AGAIN
USE IN (nSelect)
И курсор по мановению палочки становился ReadWrite :)
...
Рейтинг: 0 / 0
VFP 9. Обязательно ли переделывать курсор что бы сделать его ReadWrite
    #34764105
splayn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_PSerg_Кода до еще в FPD был у меня такой код:
* На момент выполнения кода активным является READ-курсор
nSelect = SELECT()
cDBF = DBF()
SELECT 0
USE (cDBF) AGAIN
USE IN (nSelect)
И курсор по мановению палочки становился ReadWrite :)

А вот это действительно интересно :)
...
Рейтинг: 0 / 0
VFP 9. Обязательно ли переделывать курсор что бы сделать его ReadWrite
    #34764318
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
splayn _PSerg_Кода до еще в FPD был у меня такой код:
* На момент выполнения кода активным является READ-курсор
nSelect = SELECT()
cDBF = DBF()
SELECT 0
USE (cDBF) AGAIN
USE IN (nSelect)
И курсор по мановению палочки становился ReadWrite :)

А вот это действительно интересно :) Интересно писать 5 строк кода вместо одного слова READWRITE в конце select`а?
Код: plaintext
select ... into cursor MyCursor readwrite
...
Рейтинг: 0 / 0
VFP 9. Обязательно ли переделывать курсор что бы сделать его ReadWrite
    #34766840
splayn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T splayn _PSerg_Кода до еще в FPD был у меня такой код:
* На момент выполнения кода активным является READ-курсор
nSelect = SELECT()
cDBF = DBF()
SELECT 0
USE (cDBF) AGAIN
USE IN (nSelect)
И курсор по мановению палочки становился ReadWrite :)

А вот это действительно интересно :) Интересно писать 5 строк кода вместо одного слова READWRITE в конце select`а?
Код: plaintext
select ... into cursor MyCursor readwrite


Интересно... (я спрашивал, так что бы курсор не пересоздавать... он уже однажды создан для чтения...)
...
Рейтинг: 0 / 0
VFP 9. Обязательно ли переделывать курсор что бы сделать его ReadWrite
    #34766909
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
splaynИнтересно... (я спрашивал, так что бы курсор не пересоздавать... он уже однажды создан для чтения...)
Интересно, Вы хотите модифицировать код. Какая разница, добавить одну опцию в команде создания или неизвестно сколько строк кода, чтобы исправить ранее созданный курсор?

"Неизвестно сколько" потому, что ведь курсор у Вас не просто так "болтается". Его надо еще привязать к какому-то объекту. А переоткрытие сопровождается, как минимум, изменением алиаса. Даже если удалить исходный курсор и опять переоткрыть уже переоткрытый. Значит, перепривязка источников данных. Значит, куча дополнительного кода. Оно Вам надо?
...
Рейтинг: 0 / 0
VFP 9. Обязательно ли переделывать курсор что бы сделать его ReadWrite
    #34766966
piva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Походу курсор создается в недоступном для автора месте
...
Рейтинг: 0 / 0
VFP 9. Обязательно ли переделывать курсор что бы сделать его ReadWrite
    #34767297
korsak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМ А переоткрытие сопровождается, как минимум, изменением алиаса. Даже если удалить исходный курсор и опять переоткрыть уже переоткрытый. Значит, перепривязка источников данных.
А так тоже не сработает?

_f = DBF("cursor")
_n = SELE("cursor")
USE (_f) AGAI IN 0 ALIA "rwcursor"
USE IN ("cursor")
USE (_f) AGAI IN _n ALIA ("cursor")
USE IN "rwcursor"
SELE ("cursor")
...
Рейтинг: 0 / 0
VFP 9. Обязательно ли переделывать курсор что бы сделать его ReadWrite
    #34767329
Рома Б.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если нужно лишь создать несколько индексов, а не изменять содержимое курсора, то я использую неструктурный составной индекс:

&& Где-то там в конструкторах.

PUBLIC gcPathTemp && Путь к временному каталогу.

DECLARE INTEGER GetLongPathName IN Win32API;
STRING @lpszShortPath, STRING @lpszLongPath, INTEGER cchBuffer
DECLARE INTEGER GetTempPath IN Win32API;
INTEGER nBufferLength, STRING @lpBuffer

LOCAL lcValue, lcValue2

lcValue = REPLICATE (' ', 255)
=GetTempPath (255, @lcValue)
lcValue = LEFT (lcValue, AT (CHR (0), lcValue) - 1)
lcValue2 = REPLICATE (' ', 255)
=GetLongPathName (@lcValue, @lcValue2, 255)
lcValue2 = LEFT (lcValue2, AT (CHR (0), lcValue2) - 1)

gcPathTemp = lcValue2

CLEAR DLLS

&& Работа с курсором.

PUBLIC gcКурсорAlias
gcКурсорAlias = СозданиеКурсораНаЧтение ()

PUBLIC gcIndexName && Имя НЕСТРУКТУРНОГО СОСТАВНОГО индекса.
gcIndexName = ADDBS (gcPathTemp) + SUBSTR (SYS (2015), 3, 10)

SELECT (gcКурсорAlias)
INDEX ON Exp1 TAG Tag1 OF gcIndexName + '.cdx'
INDEX ON Exp2 TAG Tag2 OF gcIndexName + '.cdx'
...
INDEX ON ExpN TAG TagN OF gcIndexName + '.cdx'

=ИспользованиеКурсора (gcКурсорAlias)

USE IN (gcКурсорAlias)
ERASE (gcIndexName + '.*')
RELEASE gcIndexName
RELEASE gcКурсорAlias

&& Где-то там в деструкторах.

RELEASE gcPathTemp
...
Рейтинг: 0 / 0
VFP 9. Обязательно ли переделывать курсор что бы сделать его ReadWrite
    #34767380
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
korsak ВладимирМ А переоткрытие сопровождается, как минимум, изменением алиаса. Даже если удалить исходный курсор и опять переоткрыть уже переоткрытый. Значит, перепривязка источников данных.
А так тоже не сработает?

_f = DBF("cursor")
_n = SELE("cursor")
USE (_f) AGAI IN 0 ALIA "rwcursor"
USE IN ("cursor")
USE (_f) AGAI IN _n ALIA ("cursor")
USE IN "rwcursor"
SELE ("cursor")

А теперь представьте, что курсор - это источник данных для Grid и Вы делаете подобную операцию после того, как привязка к Grid уже была осуществлена. Как минимум, будет разрушена структура Grid. Да, это можно предотвратить, написав дополнительный код. О чем я и говорю. Количество кода лавинообразно нарастает.
...
Рейтинг: 0 / 0
VFP 9. Обязательно ли переделывать курсор что бы сделать его ReadWrite
    #34767854
korsak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМ
А теперь представьте, что курсор - это источник данных для Grid и Вы делаете подобную операцию после того, как привязка к Grid уже была осуществлена. Как минимум, будет разрушена структура Grid. Да, это можно предотвратить, написав дополнительный код. О чем я и говорю. Количество кода лавинообразно нарастает.
Согласен. Но вопрос изначально был
"VFP 9. Обязательно ли переделывать курсор что бы сделать его ReadWrite?"
Может быть автора работа в Grid и не интересует.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / VFP 9. Обязательно ли переделывать курсор что бы сделать его ReadWrite
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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