|
Клиент для БД без Bound Controls
|
|||
---|---|---|---|
#18+
Здарова. Начал писать клиента для 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. Извините за длинную мессагу! ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2003, 18:54 |
|
Клиент для БД без Bound Controls
|
|||
---|---|---|---|
#18+
Писать ручками аль нет зависит от задачь поставленных перед твоей прогой... Сначала определись нужно ли енто те. Еслив да, то тут уж без болшой крови не обойтись. Единственный совет, создать свои универсальные классы и ActiveX, чтобы не парится каждый раз. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2003, 05:15 |
|
Клиент для БД без Bound Controls
|
|||
---|---|---|---|
#18+
Найдите какой нить коммерческий грид ( я юзаю janus gridex) и не парьтесь. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2003, 09:43 |
|
Клиент для БД без Bound Controls
|
|||
---|---|---|---|
#18+
Идешь в eDonkey, ищещь там по ключевому слову Infragistics и качаешь Infragistics Ultragrid или Netadvantage (любой volume, ultragrid туда входит). И действительно не паришь себе голову стандартными убогими компонентами. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2003, 10:53 |
|
Клиент для БД без Bound Controls
|
|||
---|---|---|---|
#18+
Ну что ж... Господа big-duke и Flare правы, если те важен результат (работа пользовательской компаненты), а не спортивный интерес... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2003, 11:04 |
|
Клиент для БД без Bound Controls
|
|||
---|---|---|---|
#18+
Я согласен, даже в учебниках для начинающих не рекомендуется пользоваться связанными контролами. Я не использую флексгрид (на мой взгляд - ничего, кроме украшательств и дополнительной мороки не дает), а использую стандартный датагрид контрол. В форме, через которую добавляются, редактируются или удаляются данные, есть заданное число несвязанных полей (текстовых или комбо), флажков и этот самый грид, где отображаются собственно данные. Есть четыре основных функций - это контроль введеных данных (по событию валидейт), добавление новой записи, редактирование выбранной и удаление выбранной. Выбор записи - по клику на гриде. Ключевое поле можно спрятать, сделав ширину столбца=0. Для заполнения не использую хранимые процедуры, а просто запрос. Сп использую только, когда нужно на стороне сервера сделать большой объем обработки данных. В общем, примерно так ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2003, 18:13 |
|
Клиент для БД без Bound Controls
|
|||
---|---|---|---|
#18+
Спасибо за ответы, особенно ulis'у. Если что - я ишо чего-нибудь у вас спрошу! ;-) P.S. Чёто вчера маленько поискал нормальный грид какой-нибудь - не нашел... Плохо искал, видимо, или руки не оттуда растут. Может, кто-нибудь, кому не жалко и не сложно, скинет мне его мылом? (manowartemp@yandex.ru) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2003, 18:20 |
|
Клиент для БД без Bound Controls
|
|||
---|---|---|---|
#18+
to ulis А как обновляешь содержимое грида после редактирования/добавления/удаления записи? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2003, 18:40 |
|
Клиент для БД без Bound Controls
|
|||
---|---|---|---|
#18+
для обновления грида есть функция, которая просто заново запрашивает источник данных. Правда, есть тонкости, например, для юзера удобно, чтобы после обновления указатель стоял именно на той записи, которая была добавлена. Поэтому в функцию передаю, где должна распологаться добавленная запись - в начале или конце грида. Было бы удобно "плавно" прокрутить" грид и встать на нужную запись, но пока не решил эту проблему. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2003, 17:43 |
|
Клиент для БД без Bound Controls
|
|||
---|---|---|---|
#18+
Не, а я вот не совсем понял. Нормальный коммерческий грид – это, конечно, хорошо, а как он решает проблему работы в НЕСВЯЗАННОМ режиме при редактировании или втавке записей? Как избежать, например этих флагов об изменении строки и прохода в цикле по всем строкам? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2003, 17:42 |
|
Клиент для БД без Bound Controls
|
|||
---|---|---|---|
#18+
2 ulis Дето у меня был код на скрол (пришлось когдато попарится)... Могу выслать... Там надобно трохи в API покопаться... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2003, 17:56 |
|
Клиент для БД без Bound Controls
|
|||
---|---|---|---|
#18+
Так на вскидку могу сказать что есть 2 варианта: - заюзать ScrollWindow из Win32 API - заюзать SendMessage c cообщением WM_V(H)SCROLL ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2003, 18:12 |
|
|
start [/forum/topic.php?fid=60&msg=32315295&tid=2170492]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
65ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 174ms |
0 / 0 |