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

А вот это действительно интересно :)
...
Рейтинг: 0 / 0
30.08.2007, 12:58
    #34764318
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VFP 9. Обязательно ли переделывать курсор что бы сделать его ReadWrite
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
31.08.2007, 10:32
    #34766840
splayn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VFP 9. Обязательно ли переделывать курсор что бы сделать его ReadWrite
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
31.08.2007, 10:47
    #34766909
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VFP 9. Обязательно ли переделывать курсор что бы сделать его ReadWrite
splaynИнтересно... (я спрашивал, так что бы курсор не пересоздавать... он уже однажды создан для чтения...)
Интересно, Вы хотите модифицировать код. Какая разница, добавить одну опцию в команде создания или неизвестно сколько строк кода, чтобы исправить ранее созданный курсор?

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

_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
31.08.2007, 12:05
    #34767329
Рома Б.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VFP 9. Обязательно ли переделывать курсор что бы сделать его ReadWrite
Если нужно лишь создать несколько индексов, а не изменять содержимое курсора, то я использую неструктурный составной индекс:

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

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


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