We use our own class of DBServer called DBServerKl, where we inherit DBServerKl and overwrite some of its methods, this used to work fine in VO, however, when converted to X#, we get the error:
XS9041 Override of virtual method 'Close' has STRICT calling convention but overridden method in parent class is CLIPPER.
XS9041 Override of virtual method 'Commit' has STRICT calling convention but overridden method in parent class is CLIPPER.
Also we have in Project/Properties "Implicit Clipper" on false, after this advice:
https://www.xsharp.eu/forum/public-prod ... rt=10#4521
However if we would put it on true, it would probably work but we would get the XS1558 error again in InitializeComponent, so this would not help us.
Here is the code:
Code: Select all
CLASS DBServerKL INHERIT DBServer
method Close() class DBServerKl
if nDBTeller > 0
--nDBTeller
endif
super:Close()
RETURN TRUE
method Commit() class DBServerKl
local lOk as logic
// dbg(str( self:recno))
if self:EoF
//LOGGZ("Commit",self:Name+": Commit op EOF record", cMedewerker, cDatapath)
elseif self:RLOCK()
lOk := super:Commit()
if !lOk //niet gelukt ?
if self:STATus==null_object
LOGGZ("Commit",self:Name+": Commit niet gelukt. Status onbekend", cMedewerker, cDatapath)
else
LOGGZ("Commit",self:Name+": Commit niet gelukt: "+self:STATus:description, cMedewerker, cDatapath)
endif
endif
else
if self:STATus==null_object
LOGGZ("Commit",self:Name+": Rlock niet gelukt. Status onbekend", cMedewerker, cDatapath)
else
LOGGZ("Commit",self:Name+": Rlock niet gelukt: "+self:STATus:description, cMedewerker, cDatapath)
endif
endif
self:UnLock()
return lOk
(more unrelated methods that do seem to get inherited fine here)
END CLASS