error when I assign OnError event to TMyConnection
Posted: Mon 06 Feb 2006 08:51
I'm using BCBBuilder 6 with mydac 3.5
I have a function like the one belowe.
I'm tryng to add evento OnError using
myConn->OnError = MyConnectionSIVError;
but I got this error at compile time:
[C++ Error] Unit_DM1.cpp(136): E2034 Cannot convert 'void (_fastcall TDataModule_PMV::*)(TObject *,EDAError *,bool &)' to 'void (_fastcall * (_closure )(TObject *,EDAError *,bool &))(TObject *,EDAError *,bool &)'
what I'm wrong ?
TMyConnection * __fastcall TDataModule_PMV::NewMyConnection(String hostName)
{
String strmsg;
TMyConnection * myConn = 0;
try
{
myConn = new TMyConnection( NULL );
myConn->OnError = MyConnectionSIVError;
myConn->Pooling = false;
myConn->Server = hostName;
myConn->Database = "pmv_manager";
myConn->Username = "pmv_manager";
myConn->Password = "pmv_manager";
myConn->LoginPrompt = false;
strmsg = Format( "(conn: %s.%s.%s) ",
ARRAYOFCONST(( myConn->Server,
myConn->Database,
myConn->Username )) );
myConn->Connected = true;
}
catch( Exception & ex )
{
String serr;
serr = Format( "[DataModule_PMV::NewMyConnection] ERRORE %s %s ",
ARRAYOFCONST(( ex.Message, strmsg )) );
Util::mylog( serr );
RemoveMyConnection( myConn );
myConn = 0;
}
return myConn;
}
where MyConnectionSIVError is defined inside published section as:
void __fastcall MyConnectionSIVError(TObject *Sender, EDAError *E, bool &Fail);
regards, Enzo Arlati
I have a function like the one belowe.
I'm tryng to add evento OnError using
myConn->OnError = MyConnectionSIVError;
but I got this error at compile time:
[C++ Error] Unit_DM1.cpp(136): E2034 Cannot convert 'void (_fastcall TDataModule_PMV::*)(TObject *,EDAError *,bool &)' to 'void (_fastcall * (_closure )(TObject *,EDAError *,bool &))(TObject *,EDAError *,bool &)'
what I'm wrong ?
TMyConnection * __fastcall TDataModule_PMV::NewMyConnection(String hostName)
{
String strmsg;
TMyConnection * myConn = 0;
try
{
myConn = new TMyConnection( NULL );
myConn->OnError = MyConnectionSIVError;
myConn->Pooling = false;
myConn->Server = hostName;
myConn->Database = "pmv_manager";
myConn->Username = "pmv_manager";
myConn->Password = "pmv_manager";
myConn->LoginPrompt = false;
strmsg = Format( "(conn: %s.%s.%s) ",
ARRAYOFCONST(( myConn->Server,
myConn->Database,
myConn->Username )) );
myConn->Connected = true;
}
catch( Exception & ex )
{
String serr;
serr = Format( "[DataModule_PMV::NewMyConnection] ERRORE %s %s ",
ARRAYOFCONST(( ex.Message, strmsg )) );
Util::mylog( serr );
RemoveMyConnection( myConn );
myConn = 0;
}
return myConn;
}
where MyConnectionSIVError is defined inside published section as:
void __fastcall MyConnectionSIVError(TObject *Sender, EDAError *E, bool &Fail);
regards, Enzo Arlati