Hi sir:
When DA was upgraded to 9.2, a previous server file(I maked) went wrong. I remember when I was in DA9.1, no problem. the error msg displayed:
[dcc32 Error] sxMisService_Impl.pas(17): E2291 Missing implementation of interface method IsxMisService.LoginOP
[dcc32 Error] sxMisService_Impl.pas(17): E2291 Missing implementation of interface method IsxMisService.myExecSQL
Why?
PS:
the impl:
type
{ TsxMisService }
TsxMisService = class(TDataAbstractService, IsxMisService) //**************error
DataStreamer: TDABin2DataStreamer;
Test3BP: TDABusinessProcessor;
test4BP: TDABusinessProcessor;
EMPBP: TDABusinessProcessor;
DeparBP: TDABusinessProcessor;
TZGLBP: TDABusinessProcessor;
DABusinessProcessor1: TDABusinessProcessor;
Schema: TDASchema;
procedure LogoutOP;
procedure LoginOP(const aUserID: Utf8String; const aPassword: Utf8String; out aUserInfo: UserInfo; out Loginok: Boolean);
procedure myExecSQL(const aCommand: TMyDataCommand; const aTableName: AnsiString;
const aParams: DataParameterArray; const aOPSymbol:AnsiString; const aKeys:DataParameterArray);
function myExecFUNC(const myParam: DataParameterArray; const myFuncName: AnsiString): Boolean;
procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject;
var aConnectionName: string);
private
function _GetConnection: IDAConnection;
protected
function SQLTblUpdata(const tblName: AnsiString; const Delta: Binary): Binary;
{ IsxMisService methods }
end;
implementation
{$R *.dfm}
uses
{Generated:} sxMisLibrary_Invk, fServerDataModule;
//////////////////////////////////////////////////////////////////////////
the intf:
const LibraryUID: String = ‘{687D191B-48C2-49BC-8540-2DAA649CB574}’;
const DefaultNamespace: String = ‘sxMisLibrary’;
const TargetNamespace: String = ‘sxMisLibrary’;
const IsxMisService_IID: TGUID = ‘{0133C17D-127B-4EBB-A5BC-6241FB7E3E92}’;
type
{ Forward declarations }
IsxMisService = interface;
IsxMisService_Async = interface;
IsxMisService_AsyncEx = interface;
CosxMisService = class;
CosxMisService_Async = class;
CosxMisService_AsyncEx = class;
TsxMisService_Proxy = class;
TsxMisService_AsyncProxy = class;
TsxMisService_AsyncProxyEx = class;
TMyDataCommand = (dcDelData, dcInsData, dcUpdData);
IsxMisService = interface(DataAbstract4_intf.IDataAbstractService)
[’{0133C17D-127B-4EBB-A5BC-6241FB7E3E92}’]
procedure LoginOP(const YGBH: string; const MIMA: string; out aUserInfo: DataAbstract4_intf.UserInfo; out Loginok: Boolean);
procedure LogoutOP;
procedure myExecSQL(const aCommand: TMyDataCommand; const aTableName: string; const aParams: DataAbstract4_intf.DataParameterArray; const aOPSymbol: string; const aKeys: DataAbstract4_intf.DataParameterArray);
function SQLTblUpdata(const TblName: string; const Delta: Binary): Binary;
function myExecFUNC(const myParam: DataAbstract4_intf.DataParameterArray; const myFuncName: string): Boolean;
end;
IsxMisService_Async = interface(DataAbstract4_intf.IDataAbstractService_Async)
[’{9E5F102B-1C80-41FC-A74B-765EDD4F7E36}’]
procedure Invoke_LoginOP(const YGBH: string; const MIMA: string);
procedure Invoke_LogoutOP;
procedure Invoke_myExecSQL(const aCommand: TMyDataCommand; const aTableName: string; const aParams: DataAbstract4_intf.DataParameterArray; const aOPSymbol: string; const aKeys: DataAbstract4_intf.DataParameterArray);
procedure Invoke_SQLTblUpdata(const TblName: string; const Delta: Binary);
procedure Invoke_myExecFUNC(const myParam: DataAbstract4_intf.DataParameterArray; const myFuncName: string);
procedure Retrieve_LoginOP(out aUserInfo: DataAbstract4_intf.UserInfo; out Loginok: Boolean);
function Retrieve_SQLTblUpdata: Binary;
function Retrieve_myExecFUNC: Boolean;
end;
IsxMisService_AsyncEx = interface(DataAbstract4_intf.IDataAbstractService_AsyncEx)
[’{24D8CA39-DFD7-4318-AEAD-9AA1F4A9727C}’]
function BeginLoginOP(const YGBH: string; const MIMA: string; const aCallback: TROAsyncCallback; const aUserData: Pointer = nil): IROAsyncRequest;
function BeginLogoutOP(const aCallback: TROAsyncCallback; const aUserData: Pointer = nil): IROAsyncRequest;
function BeginmyExecSQL(const aCommand: TMyDataCommand; const aTableName: string; const aParams: DataAbstract4_intf.DataParameterArray; const aOPSymbol: string; const aKeys: DataAbstract4_intf.DataParameterArray;
const aCallback: TROAsyncCallback; const aUserData: Pointer = nil): IROAsyncRequest;
function BeginSQLTblUpdata(const TblName: string; const Delta: Binary; const aCallback: TROAsyncCallback; const aUserData: Pointer = nil): IROAsyncRequest;
function BeginmyExecFUNC(const myParam: DataAbstract4_intf.DataParameterArray; const myFuncName: string; const aCallback: TROAsyncCallback; const aUserData: Pointer = nil): IROAsyncRequest;
procedure EndLoginOP(out aUserInfo: DataAbstract4_intf.UserInfo; out Loginok: Boolean; const aRequest: IROAsyncRequest);
procedure EndLogoutOP(const aRequest: IROAsyncRequest);
procedure EndmyExecSQL(const aRequest: IROAsyncRequest);
function EndSQLTblUpdata(const aRequest: IROAsyncRequest): Binary;
function EndmyExecFUNC(const aRequest: IROAsyncRequest): Boolean;
end;
Thanks.