ADODB. Обработка событий.
А вот другой случай. У ADODB.Connections есть куча эвентов, так вот, как их отловить. Может у кого-то подобная проблема возникала? Поделитесь, пожалуйста.
Цитата:
Originally posted by honeybeer
Милостивые государи. Голова моя уже отказывается варить :D . Обработка событий объектов типа UserForm или WorkSheet - банальность обыкновенная.
А вот другой случай. У ADODB.Connections есть куча эвентов, так вот, как их отловить. Может у кого-то подобная проблема возникала? Поделитесь, пожалуйста.
Милостивые государи. Голова моя уже отказывается варить :D . Обработка событий объектов типа UserForm или WorkSheet - банальность обыкновенная.
А вот другой случай. У ADODB.Connections есть куча эвентов, так вот, как их отловить. Может у кого-то подобная проблема возникала? Поделитесь, пожалуйста.
Отловить их можно в Visual C++. B VB их не отловишь. Надо использовать методы ADODB.Connection.
Цитата:
Originally posted by Tiraspolsky
Отловить их можно в Visual C++. B VB их не отловишь. Надо использовать методы ADODB.Connection.
Отловить их можно в Visual C++. B VB их не отловишь. Надо использовать методы ADODB.Connection.
Спасибо. Но, увы, я пользую C++ Builder и в нем подобных проблем нет. Ковыряясь в хелпах, обнаружил, что для COM-объектов, к коим относится и ADO, эвенты определяются через WithEvents и только в секции Class modules.
Цитата:
Originally posted by honeybeer
Спасибо. Но, увы, я пользую C++ Builder и в нем подобных проблем нет. Ковыряясь в хелпах, обнаружил, что для COM-объектов, к коим относится и ADO, эвенты определяются через WithEvents и только в секции Class modules.
Спасибо. Но, увы, я пользую C++ Builder и в нем подобных проблем нет. Ковыряясь в хелпах, обнаружил, что для COM-объектов, к коим относится и ADO, эвенты определяются через WithEvents и только в секции Class modules.
Фуух! Разобрался! Если интересно - расскажу
Цитата:
Originally posted by honeybeer
Фуух! Разобрался! Если интересно - расскажу
Фуух! Разобрался! Если интересно - расскажу
Конечно, расскажи.
Цитата:
Originally posted by Tiraspolsky
Конечно, расскажи.
Конечно, расскажи.
После объявления экземпляра ADODB.Connection в Class Module
Код:
Private WithEvents AdoCon As ADODB.Connection
в выпадающем списке слева выбираешь имя экземпляра (AdoCon), тогда в правом списке появляется список событий для этого класса. А дальше пишешь обработчики и открытые методы для своего класса
Код:
Public Sub SetConnect()
ServerName = "RDUCK1"
Set AdoCon = New ADODB.Connection
AdoCon.ConnectionString = "UID=;PWD=;DATABASE=OIKArch;Driver={SQL Server};SERVER=" & ServerName
If AdoCon.State = adStateClosed Then AdoCon.Open
End Sub
Private Sub AdoCon_ConnectComplete(ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pConnection As ADODB.Connection)
MsgBox "Connected", vbInformation, "ADODB.Connection"
End Sub
ServerName = "RDUCK1"
Set AdoCon = New ADODB.Connection
AdoCon.ConnectionString = "UID=;PWD=;DATABASE=OIKArch;Driver={SQL Server};SERVER=" & ServerName
If AdoCon.State = adStateClosed Then AdoCon.Open
End Sub
Private Sub AdoCon_ConnectComplete(ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pConnection As ADODB.Connection)
MsgBox "Connected", vbInformation, "ADODB.Connection"
End Sub