|
|
|
Cursor Adapter - полезные "фишки" - на основе набитых "шишек"
|
|||
|---|---|---|---|
|
#18+
Продолжая освоения Cursor Adapter все больше убеждаюся что штука весьма полезная , хотя и достаточно капризная. НО для того чтобы сделать что-то быстро и не особо напрягаясь - просто незаменимая. Вот решил поделится кое-каким опытом, полученным в "борьбе за правое дело" 1. Если вы работаете через один конект - ОБЯЗАТЕЛЬНО устанавливайте Код: plaintext 1. 2. 2. Если вам все-же нужно пользоваться загрузкой по частям : Если такой курсор один - он должен загружаться последним. Перед обновлениями других CA вы должны быть уверены что все данные в него загружены. НО все-же лучше использовать несколькоь "конектов" или "шаредконектов" 3. Если CA по какой-то причине не "заполнился" т.е. не отработал метод CursorFill - ошибка не генерируется :-( Чтобы отловить ее - в методе AfterCursorFill помешаем код Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 4. Для того чтобы при загрузке формы знать что у нас все "случилось" несколько модифицируем код Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. В Form.Init Код: plaintext 1. 2. 3. 4. 5. 6. 7. Вот - если кому интересно , спрашивайте поделюсь опытом. Ежели кто еще что-то важное знает - пишите. PS Все вышесказанное относится к работе с MSSQL 2000 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2006, 13:28 |
|
||
|
Cursor Adapter - полезные "фишки" - на основе набитых "шишек"
|
|||
|---|---|---|---|
|
#18+
Если CA по какой-то причине не "заполнился" т.е. не отработал метод CursorFill - ошибка не генерируется :-( Зато сам этот метод возвращает логическое выражение, показывающее успешность выполнения метода. Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2006, 14:48 |
|
||
|
Cursor Adapter - полезные "фишки" - на основе набитых "шишек"
|
|||
|---|---|---|---|
|
#18+
To проходящий метод то возвращает - если вызывать его "ручками". А ежели CA в DE - и ошибка при "первичной" загрузке ? где его (возврат) проверять - только в aftercursorfill. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2006, 15:19 |
|
||
|
Cursor Adapter - полезные "фишки" - на основе набитых "шишек"
|
|||
|---|---|---|---|
|
#18+
ну и в догонку естественно , если я вызываю fill CA "ручками" , например делая это при составлении динамического WHERE, у меня работает проверка возврата и откат (по возможности ) к последнему "правильному" значению SelectCmd или выход( ежели ошибка "фатальная"). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2006, 15:23 |
|
||
|
Cursor Adapter - полезные "фишки" - на основе набитых "шишек"
|
|||
|---|---|---|---|
|
#18+
2 -=AlexiS=- Вопрос таков. Не получаеться после создания СА переделать запрос. Т.е. создаю СА с таким условием select * from requests where kod=5, а потом хочу изменить на такой select * from requests where kod=3 and kod=8. Не работает. Как осуществить этоу процедурку? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2006, 16:47 |
|
||
|
Cursor Adapter - полезные "фишки" - на основе набитых "шишек"
|
|||
|---|---|---|---|
|
#18+
Посмотри хелп по курсор-адаптеру про свойство BreakOnError. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2006, 16:47 |
|
||
|
Cursor Adapter - полезные "фишки" - на основе набитых "шишек"
|
|||
|---|---|---|---|
|
#18+
2 Недоходящий: where kod=3 and kod=8 А что, существут записи, в которых одновременно kod равен и 3, и 8? Может или 3 или 8? Тогда заменить and на or. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2006, 16:51 |
|
||
|
Cursor Adapter - полезные "фишки" - на основе набитых "шишек"
|
|||
|---|---|---|---|
|
#18+
2 проходящий Опечатка. Надо OR. Это просто уточнение мое проблемы что есть один запрос и нужно переделать его на другой. Использовал св-ва СА по изменению запросов, ниче не получаеться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2006, 16:55 |
|
||
|
Cursor Adapter - полезные "фишки" - на основе набитых "шишек"
|
|||
|---|---|---|---|
|
#18+
Тогда поясни термин "не получается". Что, где и как делаешь и какой результат получаешь и ожидаешь. Можно код здесь показать, чтоб не гадать что на самом деле там у тебя написано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2006, 16:59 |
|
||
|
Cursor Adapter - полезные "фишки" - на основе набитых "шишек"
|
|||
|---|---|---|---|
|
#18+
проходящийПосмотри хелп по курсор-адаптеру про свойство BreakOnError. Ха, а то не смотрел ... Кин-дза-дза"Я не бездействовал , я капу сразу нажал " BreakOnError BreakOnError applies only when the cursor adapter executes an event or an SQL INSERT, UPDATE, or DELETE command. BreakOnError применяется только в случае, если cursor adapter исполняет код в методах, ассоциированных с событиями или командамиSQL INSERT, UPDATE, или DELETE и из хелпа по cursorfill Note If CursorFill returns False (.F.), the cursor is discarded. In this case, the BeforeCursorClose Event and AfterCursorClose Event events do not occur. To retrieve error information when CursorFill returns False (.F.), you must call the AERROR( ) Function function because Visual Foxpro error handling, such as the ON ERROR command, Error event, and TRY...CATCH...FINALLY command, does not capture this error information. Т.е. BreakOnError непомогает . ТО Недоходящий если ты хочешь изменить текст запроса , то должен сделать после этого CursorFill можно изменять текст в BeforeCursorFill меняя параметр сSelectCmd- тогда исходный текст SelectCmd не измениться, либо менять сам текст SelectCmd но полюбому для того чтобы новый текст отработал , нужно вызывать CursorFill CursorRefresh не поможет. например Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. почитай тут очень подробно и на русском языке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2006, 17:21 |
|
||
|
Cursor Adapter - полезные "фишки" - на основе набитых "шишек"
|
|||
|---|---|---|---|
|
#18+
2 -=AlexiS=- Ага вот как. А я пробывал изменить сам селектцмд и делать курсор рефреш ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2006, 22:48 |
|
||
|
Cursor Adapter - полезные "фишки" - на основе набитых "шишек"
|
|||
|---|---|---|---|
|
#18+
Добрый день. Проблема у меня следующая: Есть приложение, написанное на vfp 8.0. Для работы с SQL сервером использую нескольо CA. Время от времени возникает такая ошибка: Невозможно обновить объект ADODB.RecordSet пока курсор вызванный методом CursorAdapter.CursorFill не будет вложен в объект CursorAdapter. Причём мой обработчик ошибок это не ловит. Сообщение выскакивает в стандартном виндоусовском окошке, в котором, если я не ошибаюсь, 2 кнопочки: 'OK' и 'help'(или 'cancel') Вообщем куда ни жми, окошко появляется опять, и так до бесконечности. Остановить это через диспетчер задач невозможно. В итоге помогает только перезагрузка компьютера. Искуственно смоделировать ситуацию, когда возникает ошибка, не получается. Просто не понимаю от чего и в каком случае это случается. Может у кого-нибудь случалось подобное или хотя бы есть какие-нибудь предположения? Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2006, 16:41 |
|
||
|
Cursor Adapter - полезные "фишки" - на основе набитых "шишек"
|
|||
|---|---|---|---|
|
#18+
А откуда там взялся ADODB.RecordSet ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2006, 18:08 |
|
||
|
Cursor Adapter - полезные "фишки" - на основе набитых "шишек"
|
|||
|---|---|---|---|
|
#18+
to Worman а там ошибка не генерится - ловите через Aerror() в Aftercursorfill ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2006, 18:09 |
|
||
|
Cursor Adapter - полезные "фишки" - на основе набитых "шишек"
|
|||
|---|---|---|---|
|
#18+
Надо просто посмотреть настройки CA. Где там ссылка на ADO ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2006, 18:23 |
|
||
|
Cursor Adapter - полезные "фишки" - на основе набитых "шишек"
|
|||
|---|---|---|---|
|
#18+
-=AlexiS=-to Worman а там ошибка не генерится - ловите через Aerror() в Aftercursorfill Спасибо, попробую. Но желательно конечно устранить источник ошибок. Нет никаких идей, что это может быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2006, 18:29 |
|
||
|
Cursor Adapter - полезные "фишки" - на основе набитых "шишек"
|
|||
|---|---|---|---|
|
#18+
к сожалению с ADO не работаю , поэтому ничего подсказать не смогу . Чуть выше я давал ссылку - там есть и про ADO - попробуйте задать вопрос непосредственно Юрию - он ту тоже частенько "появляется" под ником Jurisfox ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2006, 18:52 |
|
||
|
Cursor Adapter - полезные "фишки" - на основе набитых "шишек"
|
|||
|---|---|---|---|
|
#18+
Ну, раз топик продолжает жить, дадим еще пищу для размышления. CursorFill - метод. И далеко не всегда возвращающий одно и тоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2006, 19:48 |
|
||
|
Cursor Adapter - полезные "фишки" - на основе набитых "шишек"
|
|||
|---|---|---|---|
|
#18+
СА -одно из самых и бестолковых введений в фоксе от MS , как и репорт листен. Удачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2006, 00:45 |
|
||
|
Cursor Adapter - полезные "фишки" - на основе набитых "шишек"
|
|||
|---|---|---|---|
|
#18+
У MS в первой версии ни один продукт еще не был толковым ;-) Глядишь, если это дело не забросят, в следующей версии CA станет уже нормальным рабочим инструментом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2006, 01:26 |
|
||
|
Cursor Adapter - полезные "фишки" - на основе набитых "шишек"
|
|||
|---|---|---|---|
|
#18+
Адаптер, а обосновать сможешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2006, 09:16 |
|
||
|
Cursor Adapter - полезные "фишки" - на основе набитых "шишек"
|
|||
|---|---|---|---|
|
#18+
http://forum.foxclub.ru/read.php?29,227595 интересно, а как можно это сделать без репортлистнера http://www.daquas.cz/fox/devcon2006/materialy/FOX22.zip ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2006, 09:21 |
|
||
|
Cursor Adapter - полезные "фишки" - на основе набитых "шишек"
|
|||
|---|---|---|---|
|
#18+
А, да забыл еще do form - это тоже отстой define window - это круто хоть стой, хоть падай ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2006, 09:24 |
|
||
|
Cursor Adapter - полезные "фишки" - на основе набитых "шишек"
|
|||
|---|---|---|---|
|
#18+
WormanЕсть приложение, написанное на vfp 8.0. Для работы с SQL сервером использую нескольо CA. Время от времени возникает такая ошибка: Искуственно смоделировать ситуацию, когда возникает ошибка, не получается. Просто не понимаю от чего и в каком случае это случается. Как насчет того, чтобы перейти на 9 версию + SP1 (Там CA сильно улучшили)... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2006, 09:29 |
|
||
|
Cursor Adapter - полезные "фишки" - на основе набитых "шишек"
|
|||
|---|---|---|---|
|
#18+
АдаптерСА -одно из самых и бестолковых введений в фоксе от MS , как и репорт листен. Как говорят у нас - "Опять за рыбу грошы... " Я бы все-же сказал так СА -одно из самых и ТОЛКОВЫХ введений в фоксе от MS , неговоря уже об репорт листен. Тем более что в 9 многое доведено до ума. CA - являющийся по своей сути "оберткой" для SQLEXEC - весьма облегчает работу при построении простых интерфейсов. Причем что удобно - CA объеденяет в себе и "конект" и способ модификации данных , поэтому изменение источника данных или способа добавления/изменения/удаления необходимо произвести только в самом CA и не надо лазить по коду формы. Ну и возможность создания классов на основе CA и DE так-же позволяет облегчить себе жизнь. Насчет превращения репорта в объект вообще промолчу - тут все удобства очевидны. Кстати - нашел еще одно хитрое применение CA. Поскольку данные у меня на MSSQL - многие курсоры получаю с помощью SQLEXEC. Гриды и прочие контролы на форме приходиться прописывать ручками - а это как-то лениво. Для облегчения себе жизни делаем : 1. создаем в DE курсорадаптер , возвращающий курсор нужной структуры. 2. Пользуемся драг&дропом для создания контролов на форме. 3. Если CA не нужен - сносим его . Получаеться очень быстро и удобно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2006, 11:05 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33974895&tid=1590676]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
82ms |
get tp. blocked users: |
2ms |
| others: | 220ms |
| total: | 394ms |

| 0 / 0 |
