Могу ли я перехватить события SQL Server с помощью TEventDispatcher через TADOConnection?

Я пытаюсь поймать потерянную связь на TADOConnection,
я прочел этот а также тот статья

Я внедряю TEventDispatcher класс такой.

#include <utilcls.h>
#include <ADOInt.hpp>

class EventHandler : public TEventDispatcher<EventHandler,&DIID_ConnectionEvents>
{
private:
bool connected;
TForm1 *theform;
_Connection* server;
protected:
HRESULT InvokeEvent(DISPID id, TVariant *params);
public:
EventHandler();
~EventHandler();
void Connect(TForm1 *form, _Connection* srv);
void Disconnect();
};

EventHandler::EventHandler()
{
connected = false;
theform = NULL;
}

EventHandler::~EventHandler()
{
if (connected)
Disconnect();
}

реализация

EventHandler *handler = new EventHandler();

HRESULT EventHandler::InvokeEvent(DISPID id, TVariant *params)
{
String data = WideString(*params);
ShowMessage("InvokeEvent : "+IntToStr(id)+" "+data);
}

void EventHandler::Connect(TForm1 *form, _Connection* srv)
{
theform = form;

server = srv;
server->AddRef();
ConnectEvents(server);
}

void EventHandler::Disconnect()
{
DisconnectEvents(server);
server->Release();
}

Я пытаюсь использовать класс EventHandler, как это.

handler->Connect(this,ADOConnection1->ConnectionObject);

Почему бы не позвонить InvokeEvent метод EventHandler класс, когда SQL Server руководство остановлено?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector