|
|
|
КС подход
|
|||
|---|---|---|---|
|
#18+
Решил я попробовать клиент-серверный подход так сказать... запускаю форму, сделанную на основе класса (класс - форма с литбоксом, в котором собственно хочу отобразить данные из таблицы) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. в созданном классе форма+листбокс есть такие свойства cSQLCommand - комадна для формирования курсора cRowSource - то, что передать как источник данных для листбокса Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Код: plaintext 1. 2. 3. все это работает на ура (хотя может я и неверную тактику выбрал.. учусь так сказать....) Но возникла проблема - ведь если данные изменились - то и курсор надо время от времени обновлять? как обновлять? а так - запускать например по клику на листбоксе THIS.ListRequery() THIS.ListCreation() ну пересоздаем.. ведь условие для формирования курсора не менялось, предполагаем, что просто данные в исходной раблице могли измениться... вот тут-то и собака зарыта.. при повторном вызове метода THIS.ListRequery() Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. посоветуйте как тут быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 12:17 |
|
||
|
КС подход
|
|||
|---|---|---|---|
|
#18+
Прежде чем начинать писать кучу кода сначала надо прикинуть, а надо ли это делать. Какова цель твоей формы с ListBox? Что это вообще такое будет? Скорее всего, речь идет о справочнике. Как обычно работают со справочником? Вызывали, выбрали что нужно, закрыли. Т.е. просто нет смысла что-либо обновлять в процессе работы с этой формой. Достаточно один раз загрузить данные при открытии. Надо обновить - переоткрыл форму. Вообще, автоматическое обновление данных - это та вещь, которую, как правило, делать не рекомендуется. Представь себя на месте пользователя: я ничего не трогал, а она вдруг пропала (уехала из под мышки, изменила значение и т.д. и т.п.)! Это очень похоже на предложение сделать кнопку "Выход" уезжающую из под указателя мышки. Хочешь выйти, наводишь на кнопку "Выход" указатель мышки, а кнопка отъезжает в сторону. Смешно, если ты наблюдаешь за этим со стороны, а не сам пытаешься выйти. Следовательно, обновление информации на форме должно быть привязано к какому-либо событию, которое и так предназначено для обновления формы. -) Момент открытия формы -) Нажатие кнопки "Сохранить" -) Нажатие кнопки "Обновить" Ну, момент открытия формы ты уже отработал. А что происходит, когда форма уже открыта? Созданные курсоры оказываются привязаны к некоторым объектам формы. В данном случае к ListBox. Следовательно, прежде чем уничтожать эта курсоры необходимо разорвать их связь с объектами формы. ListBox.RowSource = "" Вот теперь, можешь вытворять с этими курсорами что угодно. Только после всех обновлений не забудь снова привязать курсор к объекту и обновить содержимое этого объекта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 18:39 |
|
||
|
КС подход
|
|||
|---|---|---|---|
|
#18+
Спасибо за ответ!!! ВладимирМПрежде чем начинать писать кучу кода сначала надо прикинуть, а надо ли это делать. Какова цель твоей формы с ListBox? Что это вообще такое будет? Скорее всего, речь идет о справочнике. Как обычно работают со справочником? Вызывали, выбрали что нужно, закрыли. Т.е. просто нет смысла что-либо обновлять в процессе работы с этой формой. Достаточно один раз загрузить данные при открытии. Надо обновить - переоткрыл форму. в данном случае не совсем так... форма-справочник позволяет так же этот справочник редактировать.. то есть кнопка добавить - редактировать.. допустим я добавляб новую запись.. и что? без обновления курсора тут уж никак не обойтись. Впрочем Вы правы - я недостаточно точно сформулировал свой вопрос ВладимирМ Созданные курсоры оказываются привязаны к некоторым объектам формы. В данном случае к ListBox. Следовательно, прежде чем уничтожать эта курсоры необходимо разорвать их связь с объектами формы. ListBox.RowSource = "" да вот об этом-то я и не подумал дома попробую.. хотя сам решил проблему иным способом - RowSource листбокса присвоил не поле курсора, а непосредственно поле таблицы.... но все же я бы хотел сделать максимально КС подход, и не вязать контролы форм непосредственно к таблицам... Хотя.. может я и не ложном пути.. ведь ВФП изначально есть файл-сервер, и, вероятно мне не стоит заморачиваться и менять все на КС подход... но.. учусь так сказать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 09:21 |
|
||
|
|

start [/forum/topic.php?fid=41&gotonew=1&tid=1592366]: |
0ms |
get settings: |
6ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
180ms |
get topic data: |
7ms |
get first new msg: |
4ms |
get forum data: |
2ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 451ms |

| 0 / 0 |
