PropertyBag Get не получает значение, или получает, но поздн

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
zike
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 06.12.2006 (Ср) 12:52

PropertyBag Get не получает значение, или получает, но поздн

Сообщение zike » 06.12.2006 (Ср) 13:21

пишу Актив Контрол по книжке
http://www.computerbooks.ru/books/Progr ... h%2034.htm

дело в том что сразу запускается

Private Sub UserControl_Initialize()
OpenRecordset
DataMembers.Add "Main"
End Sub

OpenRecordset запрашивает переменные, которые описаны в PropertyBag-e, но не получает их!

Код приведён ниже :

Здесь был длиннющий кусок неотформатированного кода, но здесь его больше нет.
Длиннющие куски неотформатированного кода будут удаляться и впредь.
-- GSerg

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 06.12.2006 (Ср) 13:27

Разумеется, событие Initialize происходит раньше любых других событий. Что разумно и правильно.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

zike
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 06.12.2006 (Ср) 12:52

Сообщение zike » 06.12.2006 (Ср) 13:36

как же тогда сделать, чтобы свойства считывались в начале?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 06.12.2006 (Ср) 13:38

Осознать корявость подхода и спроектировать свои действия по-другому.
Переместить их в read_properties, например.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

zike
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 06.12.2006 (Ср) 12:52

Сообщение zike » 06.12.2006 (Ср) 13:46

Их- это :
OpenRecordset
DataMembers.Add "Main"

Тоесть примерно так :

Dim ....
..
Private Sub UserControl_Initialize()
End Sub
Private Sub UserControl_Terminate()
DataMembers.Clear
CloseRecordset
End Sub

Let-Get

Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
mstrServer = PropBag.ReadProperty("Server", mstr_def_Server)
OpenRecordset
DataMembers.Add "Main"
End Sub
.
.
REST code

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 06.12.2006 (Ср) 13:50

Примерно так.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

zike
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 06.12.2006 (Ср) 12:52

Сообщение zike » 06.12.2006 (Ср) 14:13

теперь же не определяюся свойства DataField в поле свойств контрола

mcnnMain.Open "Data Source= " & Server & "; Initial Catalogs" & Database, User, Password


но со статической строкой коннекшена определяютса

mcnnMain.Open "Data Source= MyServer; Initial Catalog=catalog_name", "user_name", "password"

в чем может бытЬ дело?

получаетса , что при инициализации контролa всетаки надо запускать
OpenRecordset
DataMembers.Add "Main"
чтобы получить DataField

?

zike
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 06.12.2006 (Ср) 12:52

Сообщение zike » 06.12.2006 (Ср) 15:41

Последний вопрос закрыт!

2 GSerg: Спасибо за помощь! Всё работает!


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot и гости: 16

    TopList  
cron