:: Visual Foxpro, Foxpro for DOS
Индексация курсора
Lemonade Jo
Автор
Вот еще один гемор вылез!У меня щас когда создается курсор после SELECTа то проиндексировать его получается только один раз При повторной попытке выдает табличку с надписью что какйта там файл .TMP находящийся в DOC~ AND SET~ (ну надуюсь поняли где) доступен только для чтения. А что делать если мне по другому полю надо все выстроить или по томуже но только в другом порядке?
Ratings: 0 negative/0 positive
Re: Индексация курсора
PaulWist

Сообщений: 14618
Дата регистрации: 01.04.2004
Поясни на примере, что не получается

CREATE CURSOR test (ID i, cID c(10))
INSERT INTO test (id, cid) VALUES (1, 'aa')
INSERT INTO test (id, cid) VALUES (2, 'bb')
* вот по двум полям
SELECT * FROM test INTO CURSOR test1 readwrite
SELECT test1
index on ID TAG ID
index on cID TAG cID
* вот после перезапроса
SELECT * FROM test INTO CURSOR test1 readwrite
SELECT test1
index on cID TAG cID




------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: Индексация курсора
Lemonade Jo
Автор
Хм! А это в 7-ке работает?..

Я просто сразу создаю курсор в запросе:
SELECT DISTINCT fild_1.a, fild_2.a FROM test a INTO CURSOR test1
SELECT test1
INDEX ON fild_1 TAG fild_1
INDEX ON fild_2 TAG fild_2

Раньше у меня после выборки все во временную таблицу помещалось и только потом шла индексация уже этой таблицы. Но вот беда - таблица то здоровенная - от полгектара и выше (смотря что с сервера придет) и после пары раз вылетания программы весь диск забивается. Вот я и решил все курсором заменить.
Ну так вот после второй попытки проиндексировать и вылазиет та бяка... А повторный запрос я не делаю - уж больно долго

Ratings: 0 negative/0 positive
Re: Индексация курсора
PaulWist

Сообщений: 14618
Дата регистрации: 01.04.2004
Цитата:
Хм! А это в 7-ке работает?..

Ну запусти тест-то в 7-ке, уж даже написали код, лень что ли.

Я конечно понял , что ты хотел сказать этим куском, но сам разберись, где поля, а где псевдоним таблицы.

SELECT DISTINCT fild_1.a, fild_2.a FROM test a INTO CURSOR test1
SELECT test1
INDEX ON fild_1 TAG fild_1
INDEX ON fild_2 TAG fild_2

Цитата:
после пары раз вылетания программы весь диск забивается. Вот я и решил все курсором заменить.

Так курсор не поможет, если вылетит по С00005, только папка будет другая.




------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: Индексация курсора
Lemonade Jo
Автор
Ну описался я - случайно перепутал У самих наверно тоже было Проблема остается - в коде то все правильно...
Ну а тест я конечно испробую - просто моя машина щас пока занята. И всеже я конечно хотел без повторных запросов, меня и так заели пользователи (из за них то и влез в рабочий код)
Ratings: 0 negative/0 positive
Re: Индексация курсора
PaulWist

Сообщений: 14618
Дата регистрации: 01.04.2004
Такая схема работает даже в 5-ке.

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




------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: Индексация курсора
Lemonade Jo
Автор
Попробовал Вашу тестилку - убедился что работает
Попробовал без повторного запроса - тоже работает...
Придется опять ковырять исходник... Ради интереса могу привести ВЕСЕЛУЮ КАРТИНКУ по результату второго индексирования?
Ratings: 0 negative/0 positive
Re: Индексация курсора
Lemonade Jo
Автор
Вот такой результат у меня получается в программе
Ratings: 0 negative/0 positive
Re: Индексация курсора
Lemonade Jo
Автор
Порылся в отладчике Ничерта противозаконного не делаю. Все время работает одна и таже процедура которая определяет на каком хейдере кликнул мышой и в каком порядке соответствующее поле индексировать. Первый раз как по маслу, а потом глубокий штопор Поменял назад код с временной таблицей табли - 5 секунд полет нормальный, 10 секунд полет нормальный...
У кого нибудь может подобный геморой случался? В каких еще случаях подобное сообщение вылетало?
Ratings: 0 negative/0 positive
Re: Индексация курсора
Владимир Максимов

Сообщений: 14098
Откуда: Москва
Дата регистрации: 02.09.2000
Почитай вот здесь

www.foxclub.ru

Цитата из этой статьи

Цитата:
Курсоры можно индексировать также как и обычные таблицы. Правда если курсор открыт в режиме только для чтения, то Вы сможете создать для него только один индексный тэг.
Ratings: 0 negative/0 positive
Re: Индексация курсора
Lemonade Jo
Автор
Как сказалбы Кот Матросскин: "Ура!Заработала!.."

Спасибо Спасибо Спасибо
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 19 (Гостей: 19)

© 2000-2024 Fox Club 
Яндекс.Метрика