Здарова. Начал писать клиента для 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. Извините за длинную мессагу!