Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Работа с данными

Страница: 1 |

 

  Вопрос: Проблемы с обновлением данных в MSHFlexGrid Добавлено: 06.07.02 13:11  

Автор вопроса:  Direct
Возникла странная проблема с обновлением информации в контроле MSHFlexGrid. В данном случае помимо многого прочего используются 2 контроля: DataGrid и MSHFlexGrid. оба подключены по технологии ADO к объекту recordset:
.ActiveConnection = 'база данных Access
.Source = sSQL
.CursorType = adOpenKeyset
.LockType = adLockPessimistic

В DataGridе редактирую информацию, переключаюсь в другую закладку (эти контроли в разных закладках), вызываю для контороля MSHFlexGrid метод Refresh и получаю дулю - информация в контроле не обновилась. При этом, это же изменение в recordset обновилось и в DataGrid, естественно, тоже.

смотрим в MSDN:
Refresh Method (ActiveX Controls)
Forces a complete repaint of a form or control.
Syntax

object.Refresh

Remarks

Use the Refresh method when you want to:

- Completely display one form while another form loads.
- Update the contents of a file-system list box, such as a FileListBox control.
- Update the data structures of a Data control.

вобщем ни слова про MSHFlexGrid, который подключен не через DataControl а через код, но, очевидно, подразумевается что refresh его не просто от нечего делать перерисовывает, а сверяет с источником. Или нет???

вобщем, чтобы обойти "неработающий" refresh пришлось вместо него писать следуещее:
MSHFlexGrid.DataSourse = recordset
обновляется, но вылезли другие проблемы, а именно:
после вышеописанного попытка

recordset.Close
connection.Close

вызывает в строке _recordset.Close_ ошибку:
Runtime error '3219'
Operation is not allowed in this context

если же не вносить изменений а значит и не вызывать "извращенный" метод "напоминания" источника данных, то все работает без ошибок.

Подскажите, что я неправльно делаю?

Ответить

  Ответы Всего ответов: 1  

Номер ответа: 1
Автор ответа:
 Andreika



Вопросов: 5
Ответов: 64
 Профиль | | #1 Добавлено: 08.07.02 13:58

В общем обходной путь: MSHFlexGrid.DataSourse = recordset это правильно.

А Runtime error '3219' Operation is not allowed in this context ругается, как я понял на строку recordset.Close ?

Если так, то следи чтобы в момент закрытия рекордсета объект DataGrid не был в режиме редактирования. (т.е. переведи указатель на другую запись, тем самым внесёшь все изменения в базу)

Удачи 

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам