|
|
|
Правильно ли я использую модули класса?
|
|||
|---|---|---|---|
|
#18+
Подскажите пожалуйста, правильно ли делать так: При различных обстоятельствах мне нужна различная информация на форме, но из одной и той же таблицы. Я поступаю следующим образом: 1. Создаю модуль класса со своим рекордсетом. (ADO + SQL server) 2. Создаю свойство (функцию) Item(ID), которое по переданному ID дает мне экземпляр класса с одной строкой из этого рекордсета 3. Создаю необходимые мне свойства, методы, опирающиеся на эту запись рекордсета либо на прочую инфу. 4.Создаю UserControl c textbox-ами, DataSource которых есть мой рекордсет, а DataField - соответстующие столбцы. 5. Создаю форму и помещаю туда UserControl. Не судите строго. Может ссылочку, где про Объекты и Классы пишут? Спасибо. Может что новое найду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2006, 13:45 |
|
||
|
Правильно ли я использую модули класса?
|
|||
|---|---|---|---|
|
#18+
Это - создание кода многократного употребления. Нормальное использование. Есть еще создание моделей предметной области. Когда (в грубом приближении) запись таблицы - это экземпляр класса, а свойство класса - поле таблицы. Но это - сложно. Прочитать можно в книге Мартина Фаулера "Архитектура корпоративных приложений". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2006, 08:59 |
|
||
|
Правильно ли я использую модули класса?
|
|||
|---|---|---|---|
|
#18+
На мой взгляд, раз есть класс представляющий запись таблицы - то должен быть класс представляющий всю таблицу. При числе записей меньше 1000 он может быть и коллекцией. И по четвёртому пункту Юрий_Ш4.Создаю UserControl c textbox-ами, DataSource которых есть мой рекордсет, а DataField - соответстующие столбцы. Может стоит обойтись без DataSource и DataField? В таком случае мы разделим данные и их отображение, получив контроль над вводом и выводом значений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2006, 09:28 |
|
||
|
Правильно ли я использую модули класса?
|
|||
|---|---|---|---|
|
#18+
marvanПри числе записей меньше 1000 он может быть и коллекцией. И по четвёртому пунктуmarvan, а не скажете, почему такое ограничение, 1000 ? Я не знаю тонкости VB6-коллекции. заметил только что при большом числе элементов, ее быстродействие начинает падать, и где-то в районе 10000 скорость примерно как у рекордсета. 100000 вообще - полные торомза. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2006, 11:10 |
|
||
|
Правильно ли я использую модули класса?
|
|||
|---|---|---|---|
|
#18+
2 Worobjoff Это (таблица внизу страницы) , как источник моих предрассудков + печальный опыт чрезмерного увлечения коллекциями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2006, 11:33 |
|
||
|
Правильно ли я использую модули класса?
|
|||
|---|---|---|---|
|
#18+
Да, коллекции не должны содержать много элементов, поэтому я их и не использую. Marvan: а как обойтись без DataSource и DataField? Связь то должна быть какая-то. И ещё вопросик заодно как-бы. Запустил проект не на ХП, как раньше, а на Windows 2003. В 2003 выражение Set text1.datasource = r1 не обрабатывает. Пишет, что класс не зарегистрирован. Дает CLSID класса. А как действовать дальше? Можно ли по реестру раскопать, чего ему не хватает? Сапсибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2006, 16:00 |
|
||
|
Правильно ли я использую модули класса?
|
|||
|---|---|---|---|
|
#18+
Юрий_Ша как обойтись без DataSource и DataField? Связь то должна быть какая-то. В классе, представляющем одну строку рекордсета пишем процедуры: - вывода полей класса в соответствующие элементы управления - чтения значений элементов обратно в класс - обновления данных рекордсета по значениям полей класса Для отслеживания изменений можно создать дополнительное поле статуса записи (новая, не изменённая, модифицированная, удалённая) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2006, 17:48 |
|
||
|
Правильно ли я использую модули класса?
|
|||
|---|---|---|---|
|
#18+
marvanЭто (таблица внизу страницы), как источник моих предрассудков IMHO, данная статья говорит лишь о неэффективности реализации стека на основе стандартной коллекции. Что 100% предсказуемо, кстати. Как на основе этой статьи могут появиться "предрассудки", не понятно. Если бы автор создал класс с функциональностью коллекции и показал бы приемущества своей реализации, было бы понятно. P.S. Да вобщем-то, стандартная коллекция - такая же "ни рыбо, ни мясо", что и Variant. Специализированные структуры данных её обязаны "уделывать" - по определению. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2006, 19:08 |
|
||
|
Правильно ли я использую модули класса?
|
|||
|---|---|---|---|
|
#18+
БенедиктКак на основе этой статьи могут появиться "предрассудки", не понятно. Впечатление производит значительное снижение производительности на 5000 записей. Я не говорю о других подходах. Важно, что большие коллекции - могут работать медленно. И ещё они сильно расходуют оперативную память. Печальный факт: приложение содержавшее около 40 коллекций средним объёмом 500 записей имело серьёзные проблемы с оперативкой под win'98 Есть и другие решения работы с БД: - хранение записей в отсоединённом рекордсете - хранение записей с массиве - хранение значений в элементах управления Кто чем пользуется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2006, 09:50 |
|
||
|
Правильно ли я использую модули класса?
|
|||
|---|---|---|---|
|
#18+
Для логики ввода данных - коллекции. В отчетах логика попроще и массиивы вполне справляются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2006, 10:41 |
|
||
|
|

start [/forum/search_topic.php?author=Nike78&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
5ms |
get forum list: |
16ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
67ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 697ms |
| total: | 865ms |

| 0 / 0 |
