powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Клиент для БД без Bound Controls
13 сообщений из 13, страница 1 из 1
Клиент для БД без Bound Controls
    #32305450
NewOne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здарова. Начал писать клиента для SQL Server 2k на VB 6. Начитался во всяких умных книжках, что лучше не использовать ADODC + Bound controls, а программировать всё самому ручками и для обновления данных на сервере использовать хранимые процедуры. Так и пытаюсь делать. Но чё-то местами какой-то маразм получается.
Например, такой вопрос. Получаю с помощью хранимой процедуры рекордсет (естественно, необновляемый), в цикле загоняю все его строчки в MS FlexGrid (ну, с одновременным форматированием Грида, так, как мне надо). При этом надо куда-то прятать поле с ID. Я его засовываю в свойство RowData для каждой строки (есть такое у ФлексГрида). Последнюю колонку Грида оставляю пустой, ставлю ей ширину = 0, и использую её для занесения флажка о факте редактирования ячеек строки.
Для редактирования Грида подставляю на место ячейки текстбокс, потом его содержимое заношу в ячейку (ну нету у меня VideoSoft FlexGrid’а). При этом ставлю в последней колонке «1» для этой строки.
Когда доходит дело до сохранения данных в БД, пишу cn.BeginTran, пробегаю в цикле по строкам Грида, смотрю в последнюю колонку, если там «1», запускаю хранимую процедуру с UPDATE’ом, которой передаю нужные параметры из этой строчки Грида (в том числе и ID из RowData).
Сам вижу, что это какой-то дурдом. Может, элементы типа Grid вообще не используют в несвязанном режиме? Или используют, но как-то по уму? Кто работал с несвязанными элементами управления – посоветуйте чего-нибудь, плиз!
P.S. Извините за длинную мессагу!
...
Рейтинг: 0 / 0
Клиент для БД без Bound Controls
    #32305536
DionX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Писать ручками аль нет зависит от задачь поставленных перед твоей прогой... Сначала определись нужно ли енто те. Еслив да, то тут уж без болшой крови не обойтись. Единственный совет, создать свои универсальные классы и ActiveX, чтобы не парится каждый раз.
...
Рейтинг: 0 / 0
Клиент для БД без Bound Controls
    #32305657
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Найдите какой нить коммерческий грид ( я юзаю janus gridex) и не парьтесь.
...
Рейтинг: 0 / 0
Клиент для БД без Bound Controls
    #32305750
Flare
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Идешь в eDonkey, ищещь там по ключевому слову Infragistics и качаешь Infragistics Ultragrid или Netadvantage (любой volume, ultragrid туда входит). И действительно не паришь себе голову стандартными убогими компонентами.
...
Рейтинг: 0 / 0
Клиент для БД без Bound Controls
    #32305774
DionX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну что ж... Господа big-duke и Flare правы, если те важен результат (работа пользовательской компаненты), а не спортивный интерес...
...
Рейтинг: 0 / 0
Клиент для БД без Bound Controls
    #32306617
Фотография ulis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я согласен, даже в учебниках для начинающих не рекомендуется пользоваться связанными контролами. Я не использую флексгрид (на мой взгляд - ничего, кроме украшательств и дополнительной мороки не дает), а использую стандартный датагрид контрол. В форме, через которую добавляются, редактируются или удаляются данные, есть заданное число несвязанных полей (текстовых или комбо), флажков и этот самый грид, где отображаются собственно данные. Есть четыре основных функций - это контроль введеных данных (по событию валидейт), добавление новой записи, редактирование выбранной и удаление выбранной. Выбор записи - по клику на гриде. Ключевое поле можно спрятать, сделав ширину столбца=0. Для заполнения не использую хранимые процедуры, а просто запрос. Сп использую только, когда нужно на стороне сервера сделать большой объем обработки данных. В общем, примерно так
...
Рейтинг: 0 / 0
Клиент для БД без Bound Controls
    #32308000
NewOne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответы, особенно ulis'у.
Если что - я ишо чего-нибудь у вас спрошу! ;-)
P.S. Чёто вчера маленько поискал нормальный грид какой-нибудь - не нашел... Плохо искал, видимо, или руки не оттуда растут. Может, кто-нибудь, кому не жалко и не сложно, скинет мне его мылом? (manowartemp@yandex.ru)
...
Рейтинг: 0 / 0
Клиент для БД без Bound Controls
    #32308035
NewOne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to ulis
А как обновляешь содержимое грида после редактирования/добавления/удаления записи?
...
Рейтинг: 0 / 0
Клиент для БД без Bound Controls
    #32309459
Фотография ulis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для обновления грида есть функция, которая просто заново запрашивает источник данных. Правда, есть тонкости, например, для юзера удобно, чтобы после обновления указатель стоял именно на той записи, которая была добавлена. Поэтому в функцию передаю, где должна распологаться добавленная запись - в начале или конце грида. Было бы удобно "плавно" прокрутить" грид и встать на нужную запись, но пока не решил эту проблему.
...
Рейтинг: 0 / 0
Клиент для БД без Bound Controls
    #32315188
Inch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не, а я вот не совсем понял. Нормальный коммерческий грид – это, конечно, хорошо, а как он решает проблему работы в НЕСВЯЗАННОМ режиме при редактировании или втавке записей? Как избежать, например этих флагов об изменении строки и прохода в цикле по всем строкам?
...
Рейтинг: 0 / 0
Клиент для БД без Bound Controls
    #32315220
viper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ulis
Дето у меня был код на скрол (пришлось когдато попарится)...
Могу выслать... Там надобно трохи в API покопаться...
...
Рейтинг: 0 / 0
Клиент для БД без Bound Controls
    #32315257
viper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так на вскидку могу сказать что есть 2 варианта:
- заюзать ScrollWindow из Win32 API
- заюзать SendMessage c cообщением WM_V(H)SCROLL
...
Рейтинг: 0 / 0
Клиент для БД без Bound Controls
    #32315295
Фотография Maxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OFFTOPIC
Вип привет из серверной:)
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Клиент для БД без Bound Controls
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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