Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Глюки курсорадаптера / 17 сообщений из 17, страница 1 из 1
13.07.2006, 16:36
    #33851728
-=AlexiS=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глюки курсорадаптера
Хочу поделится проблемой с которой столкнулся при использовании курсорадаптера .
Итак VFP9/ MSSQL 2000
Строю несколько курсорадаптеров - все отлично работает , но вот добавляю еще один который возвращает порядка 50 тыс. записей(таблицы могут быть разные) - назовем его справочником .
И все - один из курсорадаптеров созданный ранее не работает - возвращает 0 количество записей !.
Ладно ,думаю, просто типа не успевает загрузить сразу - делаю CursorRefresh() - хренушки нет ничего. Эксперементирую дальше - в вновь создаваемом курсорадаптере(справочнике) ставлю признак того, что не надо загружать данные сразу. Первый курсор загружается - вроде ура , но !!! CursorRefresh() на нем неработает - как не меняй параметры отбора - данные с сервака не идут.
Пока что решил проблему так- курсорадаптеры строю только на обновляемые параметризированные курсоры - все достаточно большие (хотя разве это большие 50 тыс) курсоры загружаю через sqlexec.

Если кто сталкивался с такой бедой и победил это - поделитесь.
...
Рейтинг: 0 / 0
14.07.2006, 00:37
    #33852589
Недоходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глюки курсорадаптера
2 -=AlexiS=-

Привет земляк!!! :-)
Тоже использую курсоры.
А Сколько ты курсоров создаешь?
...
Рейтинг: 0 / 0
14.07.2006, 02:07
    #33852624
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глюки курсорадаптера
Hi AlexiS!

Полный пример некорректного поведения нарисовать сможешь? А то так что-то не
понятно что ты делаешь и как, и где именно ломается...

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
14.07.2006, 10:50
    #33853193
-=AlexiS=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глюки курсорадаптера
to Недоходящий
курсоров в этой именно форме сейчас - 10.

to Igor Korolyov

Итак сначала я создал порядка 5-7 курсоров которые предназначались для ввода и обновления.
Все они являются параметризированными , загружаются сначала без заполнения данными(Initially open with no data), и уже в Load и Init формы я определившись с параметрами делаю примерно следующее
Код: plaintext
1.
2.
3.
dt_st=GOMONTH(DATE(),- 1 )
dt_end={^ 9999 . 12 . 31   11 : 59 }
oCA=Getcursoradapter('booking')
oCA.CursorRefresh()
Данные подгружаютсся и все ок

Но вот я решаю для дальнейшей работы подгрузить 2 справочника Sotrud и Klient
Создаю курсорадаптеры которые представляют из себя примерно такой код
Код: plaintext
select naimen,kod,rc from klient where office=?Prava_office
результат такой выборки примерно 50 тыс
В свойствах курсорадаптера стоит загружать данные сразу

Теперь внимание
при загрузке формы курсор BOOKING - пуст
и что бы я не дела с параметрами
код
Код: plaintext
1.
2.
3.
dt_st=новый данные
dt_end=новый данные
oCA=Getcursoradapter('booking')
oCA.CursorRefresh()
все равно не работает

После этого делаю следующее
ставлю свойства справочника- не грузить данные сразу.
загрузку произвожу позже в load form'ы

Код: plaintext
1.
oCA=Getcursoradapter('klient')
oCA.CursorRefresh()

певоначальная загрузка данных в BOOKING происходит НО
опять как не меняй параметры - refresh не идет ни в какую.
Причем эксперементировал убирая/оставляя оба справочника или по одному-все равно.

Убрал эти таблицы из курсорадаптеров, в Load form'ы загружаю их через sqlexec() - все работает как надо.

Т.Е. как я понял нельзя в курсорадаптерах использовать "большие" запросы .
(Хотя разве это много 50 тыс. записей ???)
...
Рейтинг: 0 / 0
14.07.2006, 12:26
    #33853607
Проходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глюки курсорадаптера
Неправильно ты понял. Можно в нем и больше. Ищи причину в твоих настройках курсор-адаптера.
...
Рейтинг: 0 / 0
14.07.2006, 12:31
    #33853629
michael_nu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глюки курсорадаптера
см. allow simultaneous fetch
...
Рейтинг: 0 / 0
14.07.2006, 13:22
    #33853801
-=AlexiS=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глюки курсорадаптера
allow simultaneous fetch - игрался
Fetch as need тоже
Fetch Size менял

Короче заметил такую закономерность - пока в курсорадаптер данные не подгрузяться полностью (вне зависимости от вышеперечисленных настроек ) - ничего в другие курcорадаптеры не грузиться.
Но почему ?
Какие еще могут быть настройки (может самого конекта ?)

И почему все работает если выполнять это дело через sqlexec !
...
Рейтинг: 0 / 0
14.07.2006, 13:31
    #33853854
-=AlexiS=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глюки курсорадаптера
только что провел эксперимент
создал 2 курсорадаптера
1 большой - счета вся таблица - около 300 тыс.записей

allow simultaneous fetch .t.
Fetch as need .t.
Fetch Size 10

2 маленький параметризированный - сборы по счету.

пока не прокрутил до конца 1 курсор и не получил все записи - 2 курсорадаптер не обновлялся.
Причем если в DE первым создать большой курсор- второй вообще не создается
...
Рейтинг: 0 / 0
14.07.2006, 13:43
    #33853897
-=AlexiS=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глюки курсорадаптера
продолжил эксперимент
ставлю большому курсору
Fetch as need .f.
Fetch Size -1
т.е. заставляю загрузить все данные - все работает
а хотелось бы нормальной асинхронной работы -
загрузилась первая порция - с ней работаем - а так приходиться ждать.
Некрасиво как-то

Sqlexec кстати у меня потому и работал, что у меня по умолчанию стоит синхронный режим.
...
Рейтинг: 0 / 0
14.07.2006, 15:07
    #33854226
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глюки курсорадаптера
не понимаю необходимости тянуть 300 тыс

даже 10тыс нет необходимости тянуть
всегда можно ограничить
объем курсора
интерфейсными заморочками

зачем юзверу такой курсор и соответствующие тормоза??
чтобы затем фильтры на него накладывать???

буху не нужно сразу видеть все тысячи
достаточно кинуть ему количество и общую сумму
и группы , затем
он уже кликает и тянутся дальше данные

придумайте курсорадаптеру свойства where
дополнительные и наклеивайте к основному селекту

ну это, во-первых

во-вторых посмотреть нужно
...
Рейтинг: 0 / 0
14.07.2006, 15:53
    #33854477
-=AlexiS=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глюки курсорадаптера
Ну елы-палы ясное дело , что не тяну я в реальной форме такое кол-во записей.
Приведенные примеры - это тесты.
Ясное дело что в интерфейсе у меня предусмотрены фильтры , курсорадаптеры параметризированы и т.д.
Но где та грань в отборе данных после которой происходит этот "глюк".
сегодня это 30 тыс. - а завтра вдруг глюканет на 100 записях ?
Просто хотелось бы нормального поведения от курсорадаптера .
Или по крайней мере документированного.
А так шаманством приходиться заниматься.
...
Рейтинг: 0 / 0
14.07.2006, 15:58
    #33854505
Проходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глюки курсорадаптера
Еще раз: нет у курсоадаптера такого ограничения. Ковыряйте настройки.
...
Рейтинг: 0 / 0
14.07.2006, 16:02
    #33854527
-=AlexiS=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глюки курсорадаптера
В догонку
самое поганое то , что если сначала создать "большой" курсорадаптер - то ВСЕ последующие просто-напросто НЕ СОЗДАЮТЬСЯ.
Ну пусть бы были пустыми - а так просто нет и все причем без всякой ошибки.
Профайлер показывает что запрос просто не идет.
Фокс решил за меня что мне это ненадо."Перетрудился и лег отдохнуть"

И небольшое лирическое отступление.
Что значит много - где грань - ?
10 тысячь-это много ? - вроде да , а если счет записей идет на миллионы ?

Опять-же я сам хочу решать что много , а что нет .
А так фокс сам решил что ему это много и все .
...
Рейтинг: 0 / 0
14.07.2006, 16:02
    #33854532
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глюки курсорадаптера
тянули 50 тыс

не было глюков
...
Рейтинг: 0 / 0
14.07.2006, 16:13
    #33854580
-=AlexiS=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глюки курсорадаптера
дайте свои настройки
я вроде уже все перепробовал.
...
Рейтинг: 0 / 0
17.07.2006, 19:57
    #33859133
NeznajkaFox
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глюки курсорадаптера
Попробуй посмотреть здесь http: http://forum.foxclub.ru/read.php?29,181229,181365#msg-181365/url%5D]http://forum.foxclub.ru/read.php?29,181229,181365#msg-181365/url]
...
Рейтинг: 0 / 0
18.07.2006, 11:35
    #33860088
-=AlexiS=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глюки курсорадаптера
Спасибо
вроде помогло - хотя в принципе дошел до таких-же выводов сам
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Глюки курсорадаптера / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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