objfpc, delphi & override

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Сообщение ushakov » 02.08.2005 10:49:38

Наследую класс TSQLConnection

Код: Выделить всё
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, модуль компилируется без ошибок?!
ushakov
новенький
 
Сообщения: 51
Зарегистрирован: 18.05.2005 11:15:48
Откуда: Украина, Киев

Сообщение SovNarKom » 02.08.2005 13:02:02

Рискну предположить, что ему не нравится вот что:

Код: Выделить всё
PrepareStatement(cursor: TSQLCursor; ATransaction: TSQLTransaction; buf: string; AParams: TParams);


Код: Выделить всё
(TSQLCursor, TSQLTransaction, ShortString, TParams)


Ему нужен ShortString, а ты ему String... проверь стоит ли у тебя {$H+}
SovNarKom
постоялец
 
Сообщения: 389
Зарегистрирован: 28.05.2005 10:37:39
Откуда: Воронеж [vrn] [36]

Сообщение ushakov » 02.08.2005 14:36:10

Спасибо - помогла директива {$H+}
ushakov
новенький
 
Сообщения: 51
Зарегистрирован: 18.05.2005 11:15:48
Откуда: Украина, Киев


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 25

Рейтинг@Mail.ru