Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 а казалось простая задача !?  [new]
Romario_rus
Member

Откуда: Владимир
Сообщений: 151
Помогите, в таком моменте:

SELECT user
ZAP

Пишет :"Команду нельзя выдать для таблицы,курсоры которой действуют в буферизации таблицы."

Да, действительно в Data Inviroment создан курсор для этой таблицы, ну что теперь делать !???
Надо ее периодически очищать, чтобы записывать новые данные.


Спасибо.Роман.
28 июн 08, 23:20    [5861422]     Ответить | Цитировать Сообщить модератору
 Re: а казалось простая задача !?  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1547
Как создается курсор? Как звучит оригинальное сообщение об ошибке? User - это курсор или таблица?
28 июн 08, 23:27    [5861426]     Ответить | Цитировать Сообщить модератору
 Re: а казалось простая задача !?  [new]
Romario_rus
Member

Откуда: Владимир
Сообщений: 151
Пишет:"Файл должен быть открыт монопольно"
28 июн 08, 23:30    [5861427]     Ответить | Цитировать Сообщить модератору
 Re: а казалось простая задача !?  [new]
Romario_rus
Member

Откуда: Владимир
Сообщений: 151
user это таблица, но и курсор с таким именем существует в DE создан из этой таблицы
28 июн 08, 23:31    [5861428]     Ответить | Цитировать Сообщить модератору
 Re: а казалось простая задача !?  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1547
Romario_rus
user это таблица, но и курсор с таким именем существует в DE создан из этой таблицы

Очень интересно. И как Вы их различаете?
28 июн 08, 23:46    [5861442]     Ответить | Цитировать Сообщить модератору
 Re: а казалось простая задача !?  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1547
Уже два совершенно разных сообщения об ошибке. Так какое же оно на самом деле?
28 июн 08, 23:47    [5861444]     Ответить | Цитировать Сообщить модератору
 Re: а казалось простая задача !?  [new]
Romario_rus
Member

Откуда: Владимир
Сообщений: 151
Сообщение :"Файл должен быть открыт монопольно:
Я просто уже запарился, предлагали несколько вариантов в предыдущей теме, пока все испробовал...

Насчет одинакового имени базы и курсора, на самом деле он сам создался когда я поместил в DE/
Как выйти из положения ?
Спасибо.Роман
29 июн 08, 00:40    [5861492]     Ответить | Цитировать Сообщить модератору
 Re: а казалось простая задача !?  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1547
Romario_rus
Как выйти из положения ?

Для начала неплохо было бы выложить сюда не туманные и противоречивые объяснения, а код формы, или, если форма небольшая, то саму форму. Пока что вот уже второй топик идут гадания и эксперименты по телепатии.
29 июн 08, 10:22    [5861774]     Ответить | Цитировать Сообщить модератору
 Re: а казалось простая задача !?  [new]
Владимир СА
Member

Откуда:
Сообщений: 7881
Romario_rus
Помогите, в таком моменте:
SELECT user
ZAP

Romario_rus
Пишет:"Файл должен быть открыт монопольно"
Сколько раз уже говорили, что ZAP лучше использовать либо при завершении проекта, а еще лучше вообще отдельно от проекта. И тогда, когда таблица открыта с опцией use <имя табл> exclusive
29 июн 08, 11:08    [5861802]     Ответить | Цитировать Сообщить модератору
 Re: а казалось простая задача !?  [new]
Romario_rus
Member

Откуда: Владимир
Сообщений: 151
При двойном клике в List2 формы Form2 должна происходить очистка user.dbf

Вот ссылка по которой можно скачать проект http://ifolder.ru/7157107

Спасибо за помощь. Роман.
29 июн 08, 20:40    [5862433]     Ответить | Цитировать Сообщить модератору
 Re: а казалось простая задача !?  [new]
проходящий.
Guest
Romario_rus
Вот ссылка по которой можно скачать проект http://ifolder.ru/7157107

Просили форму, а не весь проект, в котором еще и надо найти эту самую форму, а потом еще и ошибку в ней. Не слишком ли много требований к желающим помочь?
30 июн 08, 10:12    [5863358]     Ответить | Цитировать Сообщить модератору
 Re: а казалось простая задача !?  [new]
Romario_rus
Member

Откуда: Владимир
Сообщений: 151
проходящий.
Romario_rus
Вот ссылка по которой можно скачать проект http://ifolder.ru/7157107

Просили форму, а не весь проект, в котором еще и надо найти эту самую форму, а потом еще и ошибку в ней. Не слишком ли много требований к желающим помочь?


Я не прошу исправить всю программу.Вас много и ктото просит проект ктото форму, а некоторые говорят:"Я не хочу капаться"
Вот форма , но ведь Ты сейчас языком потрепал и в куста, а запись твоя о негативе осталась.
Вообще конкретная задача , очистить таблицу...

К сообщению приложен файл (FORMS.rar - 6Kb) cкачать
30 июн 08, 12:06    [5864061]     Ответить | Цитировать Сообщить модератору
 Re: а казалось простая задача !?  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Romario_rus
Помогите, в таком моменте:

SELECT user
ZAP

Пишет :"Команду нельзя выдать для таблицы,курсоры которой действуют в буферизации таблицы."

Собственно, уже все сказали. Но вкратце повторю.

Для удаления записей в таблице используют команды DELETE или DELETE-SQL. Физически, эти команды записи в таблице не удаляет, а лишь устанавливает специальные метки, которые означают что запись удалена.

Чтобы скрыть такие записи, помеченные как удаленные, используется специальная глобальная настройка

SET DELETED ON

Эту настройку надо делать один раз при старте приложения. Однако если Вы открываете форму в Private DataSession, то данную настройку надо повторить при открытии формы, поскольку в новой (Private) сессии данных не действуют некоторые настройки сделанные в основной (Default) сессии данных.

В результате, физически запись по прежнему есть в таблице, но ее не видит ни пользователь, ни команды FoxPro. Хотя есть специфические команды, которые способны "увидеть" такие записи.

Физическое удаление записей при помощи команд PACK или ZAP выносится в отдельные административные процедуры, которые запускаются вне зависимости от основной программы. Или, по крайней мере, когда с программой никто не работает через отдельные пункты меню. Частота запуска этих процедур определяется частотой удаления записей.

Romario_rus
Да, действительно в Data Inviroment создан курсор для этой таблицы, ну что теперь делать !???

То, что отображено в DataEnvironment - это и есть таблица. НЕ курсор. Просто тот объект, который визуализирует таблицу называют "курсор".

"Курсор", в данном случае - это просто некий обобщающий термин. Физически под ним может пониматься как собственно таблица DBF, так и действительно курсор. А может быть Local View или CursorAdapter. Все зависит от источника данных этого "курсора".

Romario_rus
Надо ее периодически очищать, чтобы записывать новые данные.

Если в процессе работы приложения некая таблица должна очищаться полностью, то вместо нее имеет смысл использовать курсор, создаваемый либо через команду Select-SQL, либо через CREATE CURSOR. Тогда удаление всех записей - это просто создание курсора заново.

Хотя, возможно, имеет смысл сделать Local View или CursorAdapter. Все зависит от того, что эта за таблица и для каких целей используется.
30 июн 08, 12:06    [5864062]     Ответить | Цитировать Сообщить модератору
 Re: а казалось простая задача !?  [new]
Romario_rus
Member

Откуда: Владимир
Сообщений: 151
ВладимирМ
Romario_rus
Помогите, в таком моменте:

SELECT user
ZAP

Пишет :"Команду нельзя выдать для таблицы,курсоры которой действуют в буферизации таблицы."

Собственно, уже все сказали. Но вкратце повторю.

Для удаления записей в таблице используют команды DELETE или DELETE-SQL. Физически, эти команды записи в таблице не удаляет, а лишь устанавливает специальные метки, которые означают что запись удалена.

Чтобы скрыть такие записи, помеченные как удаленные, используется специальная глобальная настройка

SET DELETED ON

Эту настройку надо делать один раз при старте приложения. Однако если Вы открываете форму в Private DataSession, то данную настройку надо повторить при открытии формы, поскольку в новой (Private) сессии данных не действуют некоторые настройки сделанные в основной (Default) сессии данных.

В результате, физически запись по прежнему есть в таблице, но ее не видит ни пользователь, ни команды FoxPro. Хотя есть специфические команды, которые способны "увидеть" такие записи.

Физическое удаление записей при помощи команд PACK или ZAP выносится в отдельные административные процедуры, которые запускаются вне зависимости от основной программы. Или, по крайней мере, когда с программой никто не работает через отдельные пункты меню. Частота запуска этих процедур определяется частотой удаления записей.

Romario_rus
Да, действительно в Data Inviroment создан курсор для этой таблицы, ну что теперь делать !???

То, что отображено в DataEnvironment - это и есть таблица. НЕ курсор. Просто тот объект, который визуализирует таблицу называют "курсор".

"Курсор", в данном случае - это просто некий обобщающий термин. Физически под ним может пониматься как собственно таблица DBF, так и действительно курсор. А может быть Local View или CursorAdapter. Все зависит от источника данных этого "курсора".

Romario_rus
Надо ее периодически очищать, чтобы записывать новые данные.

Если в процессе работы приложения некая таблица должна очищаться полностью, то вместо нее имеет смысл использовать курсор, создаваемый либо через команду Select-SQL, либо через CREATE CURSOR. Тогда удаление всех записей - это просто создание курсора заново.

Хотя, возможно, имеет смысл сделать Local View или CursorAdapter. Все зависит от того, что эта за таблица и для каких целей используется.


Огромное спасибо. Все достаточно понятно, и есть варианты... Буду пробовать.
Уверен , что теперь все плучится.
ВладимирМ, еще раз, спасибо.
30 июн 08, 12:12    [5864090]     Ответить | Цитировать Сообщить модератору
 Re: а казалось простая задача !?  [new]
проходящий.
Guest
Romario_rus
Я не прошу исправить всю программу.Вас много и ктото просит проект ктото форму, а некоторые говорят:"Я не хочу капаться"

Во-первых, много не нас, отвечающих, а вас, вопрошающих.
Во-вторых, если и просят проект, то минимальный, в котором оставлено только то, что действительно нужно для понимания проблемы. Копаться в нагромождениях чужого кода не хочется никому, просто на объявление этого не тратят время.
В-третьих, помощь нужна вопрошающим, а не отвечающим. Поэтому считается хорошим тоном помогать отвечающим, а не предъявлять им претензии, тем более что они вам ничем не обязаны.


Вот форма , но ведь Ты сейчас языком потрепал и в куста, а запись твоя о негативе осталась.

А тут кто-то гоняется за рейтингами? Кто с "казалось простой задачей" самостоятельно не может справиться? Я?

Вообще конкретная задача , очистить таблицу...

Это не задача, а неправильно выбранный способ выполнить несколько иную задачу.
30 июн 08, 12:28    [5864170]     Ответить | Цитировать Сообщить модератору
 Re: а казалось простая задача !?  [new]
Romario_rus
Member

Откуда: Владимир
Сообщений: 151
Твой рейтинг, все выше ...
30 июн 08, 13:18    [5864394]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить