Я пытаюсь поймать потерянную связь на 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 руководство остановлено?
Задача ещё не решена.
Других решений пока нет …