Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Клиент для БД без Bound Controls / 13 сообщений из 13, страница 1 из 1
26.10.2003, 18:54
    #32305450
NewOne
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клиент для БД без Bound Controls
Здарова. Начал писать клиента для 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
27.10.2003, 05:15
    #32305536
DionX
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клиент для БД без Bound Controls
Писать ручками аль нет зависит от задачь поставленных перед твоей прогой... Сначала определись нужно ли енто те. Еслив да, то тут уж без болшой крови не обойтись. Единственный совет, создать свои универсальные классы и ActiveX, чтобы не парится каждый раз.
...
Рейтинг: 0 / 0
27.10.2003, 09:43
    #32305657
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клиент для БД без Bound Controls
Найдите какой нить коммерческий грид ( я юзаю janus gridex) и не парьтесь.
...
Рейтинг: 0 / 0
27.10.2003, 10:53
    #32305750
Flare
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клиент для БД без Bound Controls
Идешь в eDonkey, ищещь там по ключевому слову Infragistics и качаешь Infragistics Ultragrid или Netadvantage (любой volume, ultragrid туда входит). И действительно не паришь себе голову стандартными убогими компонентами.
...
Рейтинг: 0 / 0
27.10.2003, 11:04
    #32305774
DionX
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клиент для БД без Bound Controls
Ну что ж... Господа big-duke и Flare правы, если те важен результат (работа пользовательской компаненты), а не спортивный интерес...
...
Рейтинг: 0 / 0
27.10.2003, 18:13
    #32306617
ulis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клиент для БД без Bound Controls
Я согласен, даже в учебниках для начинающих не рекомендуется пользоваться связанными контролами. Я не использую флексгрид (на мой взгляд - ничего, кроме украшательств и дополнительной мороки не дает), а использую стандартный датагрид контрол. В форме, через которую добавляются, редактируются или удаляются данные, есть заданное число несвязанных полей (текстовых или комбо), флажков и этот самый грид, где отображаются собственно данные. Есть четыре основных функций - это контроль введеных данных (по событию валидейт), добавление новой записи, редактирование выбранной и удаление выбранной. Выбор записи - по клику на гриде. Ключевое поле можно спрятать, сделав ширину столбца=0. Для заполнения не использую хранимые процедуры, а просто запрос. Сп использую только, когда нужно на стороне сервера сделать большой объем обработки данных. В общем, примерно так
...
Рейтинг: 0 / 0
28.10.2003, 18:20
    #32308000
NewOne
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клиент для БД без Bound Controls
Спасибо за ответы, особенно ulis'у.
Если что - я ишо чего-нибудь у вас спрошу! ;-)
P.S. Чёто вчера маленько поискал нормальный грид какой-нибудь - не нашел... Плохо искал, видимо, или руки не оттуда растут. Может, кто-нибудь, кому не жалко и не сложно, скинет мне его мылом? (manowartemp@yandex.ru)
...
Рейтинг: 0 / 0
28.10.2003, 18:40
    #32308035
NewOne
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клиент для БД без Bound Controls
to ulis
А как обновляешь содержимое грида после редактирования/добавления/удаления записи?
...
Рейтинг: 0 / 0
29.10.2003, 17:43
    #32309459
ulis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клиент для БД без Bound Controls
для обновления грида есть функция, которая просто заново запрашивает источник данных. Правда, есть тонкости, например, для юзера удобно, чтобы после обновления указатель стоял именно на той записи, которая была добавлена. Поэтому в функцию передаю, где должна распологаться добавленная запись - в начале или конце грида. Было бы удобно "плавно" прокрутить" грид и встать на нужную запись, но пока не решил эту проблему.
...
Рейтинг: 0 / 0
04.11.2003, 17:42
    #32315188
Inch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клиент для БД без Bound Controls
Не, а я вот не совсем понял. Нормальный коммерческий грид – это, конечно, хорошо, а как он решает проблему работы в НЕСВЯЗАННОМ режиме при редактировании или втавке записей? Как избежать, например этих флагов об изменении строки и прохода в цикле по всем строкам?
...
Рейтинг: 0 / 0
04.11.2003, 17:56
    #32315220
viper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клиент для БД без Bound Controls
2 ulis
Дето у меня был код на скрол (пришлось когдато попарится)...
Могу выслать... Там надобно трохи в API покопаться...
...
Рейтинг: 0 / 0
04.11.2003, 18:12
    #32315257
viper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клиент для БД без Bound Controls
Так на вскидку могу сказать что есть 2 варианта:
- заюзать ScrollWindow из Win32 API
- заюзать SendMessage c cообщением WM_V(H)SCROLL
...
Рейтинг: 0 / 0
04.11.2003, 18:40
    #32315295
Maxx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клиент для БД без Bound Controls
OFFTOPIC
Вип привет из серверной:)
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Клиент для БД без Bound Controls / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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