- Код: Выделить всё
- type
 TOraConnection = class(TSQLConnection)
 protected
 procedure DoInternalConnect; override;
 procedure DoInternalDisconnect; override;
 function GetHandle: Pointer; override;
 function AllocateCursorHandle: TSQLCursor; override;
 function AllocateTransactionHandle:TSQLHandle; override;
 procedure CloseStatement(cursor : TSQLCursor); override;
 procedure PrepareStatement(cursor: TSQLCursor; ATransaction: TSQLTransaction; buf: string; AParams: TParams); override;
 procedure FreeFldBuffers(cursor : TSQLCursor); override;
 procedure Execute(cursor: TSQLCursor;atransaction:tSQLtransaction; AParams : TParams); override;
 procedure AddFieldDefs(cursor: TSQLCursor;FieldDefs : TfieldDefs); override;
 function Fetch(cursor : TSQLCursor) : boolean; override;
 function LoadField(cursor : TSQLCursor;FieldDef : TfieldDef;buffer : pointer) : boolean; override;
 function GetTransactionHandle(trans : TSQLHandle): pointer; override;
 function Commit(trans : TSQLHandle) : boolean; override;
 function RollBack(trans : TSQLHandle) : boolean; override;
 function StartdbTransaction(trans : TSQLHandle) : boolean; override;
 procedure CommitRetaining(trans : TSQLHandle); override;
 procedure RollBackRetaining(trans : TSQLHandle); override;
 procedure UpdateIndexDefs(var IndexDefs : TIndexDefs;TableName : string); override;
 function GetSchemaInfoSQL(SchemaType : TSchemaType; SchemaObjectName, SchemaPattern : string) : string; override;
 function CreateBlobStream(Field: TField; Mode: TBlobStreamMode): TStream; override;
 public
 constructor Create(AOwner : TComponent); override;
 published
 property DatabaseName;
 property KeepConnection;
 property LoginPrompt;
 property Params;
 property OnLogin;
 end;
При режиме совместимости delphi все компилируется без ошибок. В режиме objfpc компилятор выдает следующие сообщения:
oraconnection.pas(33,17) Error: There is no method in an ancestor class to be overridden: "TOraConnection.PrepareStatement(TSQLCursor, TSQLTransaction, ShortString, TParams)"
oraconnection.pas(45,17) Error: There is no method in an ancestor class to be overridden: "TOraConnection.UpdateIndexDefs(var TIndexDefs, ShortString)"
oraconnection.pas(46,16) Error: There is no method in an ancestor class to be overridden: "TOraConnection.GetSchemaInfoSQL(TSchemaType, ShortString, ShortString):ShortString"
oraconnection.pas(60,1) Fatal: There were 3 errors compiling module, stopping
oraconnection.pas(60,1) Error: Compilation aborted
В модуле ibconnection.pp используется режим совместимости objfpc, модуль компилируется без ошибок?!


