powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Правильно ли я использую модули класса?
11 сообщений из 11, страница 1 из 1
Правильно ли я использую модули класса?
    #33842225
Юрий_Ш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите пожалуйста, правильно ли делать так:
При различных обстоятельствах мне нужна различная информация на форме, но из одной и той же таблицы. Я поступаю следующим образом:

1. Создаю модуль класса со своим рекордсетом. (ADO + SQL server)

2. Создаю свойство (функцию) Item(ID), которое по переданному ID дает мне экземпляр класса с одной строкой из этого рекордсета

3. Создаю необходимые мне свойства, методы, опирающиеся на эту запись рекордсета либо на прочую инфу.

4.Создаю UserControl c textbox-ами, DataSource которых есть мой рекордсет, а DataField - соответстующие
столбцы.

5. Создаю форму и помещаю туда UserControl.


Не судите строго.
Может ссылочку, где про Объекты и Классы пишут? Спасибо.
Может что новое найду.
...
Рейтинг: 0 / 0
Правильно ли я использую модули класса?
    #33843919
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это - создание кода многократного употребления. Нормальное использование.
Есть еще создание моделей предметной области. Когда (в грубом приближении) запись таблицы - это экземпляр класса, а свойство класса - поле таблицы. Но это - сложно. Прочитать можно в книге Мартина Фаулера "Архитектура корпоративных приложений".
...
Рейтинг: 0 / 0
Правильно ли я использую модули класса?
    #33843979
marvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На мой взгляд, раз есть класс представляющий запись таблицы - то должен быть класс представляющий всю таблицу. При числе записей меньше 1000 он может быть и коллекцией.
И по четвёртому пункту
Юрий_Ш4.Создаю UserControl c textbox-ами, DataSource которых есть мой рекордсет, а DataField - соответстующие столбцы.
Может стоит обойтись без DataSource и DataField? В таком случае мы разделим данные и их отображение, получив контроль над вводом и выводом значений.
...
Рейтинг: 0 / 0
Правильно ли я использую модули класса?
    #33844319
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
marvanПри числе записей меньше 1000 он может быть и коллекцией.
И по четвёртому пунктуmarvan, а не скажете, почему такое ограничение, 1000 ?
Я не знаю тонкости VB6-коллекции. заметил только что при большом числе элементов, ее быстродействие начинает падать, и где-то в районе 10000 скорость примерно как у рекордсета. 100000 вообще - полные торомза.
...
Рейтинг: 0 / 0
Правильно ли я использую модули класса?
    #33844413
marvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Worobjoff
Это (таблица внизу страницы) , как источник моих предрассудков + печальный опыт чрезмерного увлечения коллекциями.
...
Рейтинг: 0 / 0
Правильно ли я использую модули класса?
    #33845485
Юрий_Ш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, коллекции не должны содержать много элементов, поэтому я их и не использую.
Marvan: а как обойтись без DataSource и DataField? Связь то должна быть какая-то.
И ещё вопросик заодно как-бы. Запустил проект не на ХП, как раньше, а на Windows 2003. В 2003 выражение Set text1.datasource = r1 не обрабатывает. Пишет, что класс не зарегистрирован. Дает CLSID класса. А как действовать дальше? Можно ли по реестру раскопать, чего ему не хватает? Сапсибо.
...
Рейтинг: 0 / 0
Правильно ли я использую модули класса?
    #33845926
marvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юрий_Ша как обойтись без DataSource и DataField? Связь то должна быть какая-то.
В классе, представляющем одну строку рекордсета пишем процедуры:
- вывода полей класса в соответствующие элементы управления
- чтения значений элементов обратно в класс
- обновления данных рекордсета по значениям полей класса
Для отслеживания изменений можно создать дополнительное поле статуса записи (новая, не изменённая, модифицированная, удалённая)
...
Рейтинг: 0 / 0
Правильно ли я использую модули класса?
    #33846158
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
marvanЭто (таблица внизу страницы), как источник моих предрассудков
IMHO, данная статья говорит лишь о неэффективности реализации стека на основе стандартной коллекции. Что 100% предсказуемо, кстати. Как на основе этой статьи могут появиться "предрассудки", не понятно. Если бы автор создал класс с функциональностью коллекции и показал бы приемущества своей реализации, было бы понятно.

P.S. Да вобщем-то, стандартная коллекция - такая же "ни рыбо, ни мясо", что и Variant. Специализированные структуры данных её обязаны "уделывать" - по определению.
...
Рейтинг: 0 / 0
Правильно ли я использую модули класса?
    #33846782
marvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БенедиктКак на основе этой статьи могут появиться "предрассудки", не понятно.
Впечатление производит значительное снижение производительности на 5000 записей. Я не говорю о других подходах. Важно, что большие коллекции - могут работать медленно. И ещё они сильно расходуют оперативную память. Печальный факт: приложение содержавшее около 40 коллекций средним объёмом 500 записей имело серьёзные проблемы с оперативкой под win'98

Есть и другие решения работы с БД:
- хранение записей в отсоединённом рекордсете
- хранение записей с массиве
- хранение значений в элементах управления

Кто чем пользуется?
...
Рейтинг: 0 / 0
Правильно ли я использую модули класса?
    #33846996
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для логики ввода данных - коллекции.
В отчетах логика попроще и массиивы вполне справляются.
...
Рейтинг: 0 / 0
Правильно ли я использую модули класса?
    #33847178
Alexey Kudinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
marvanКто чем пользуется?
marvan - хранение записей в отсоединённом рекордсете - во всяом случае до того, как их них разворачиваются экземпляры клаасов (если нужно, конечно)
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Правильно ли я использую модули класса?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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