如何在C++Builder中从TADOQuery扩展类

How to extend a class from TADOQuery in C++ Builder?

本文关键字:TADOQuery 扩展 中从 C++Builder      更新时间:2023-10-16

我正试图从下面的TADOQuery创建扩展类。

我在项目中添加了新单元。

第二单元.h

#include <ADODB.hpp>
#ifndef Unit2H
#define Unit2H
#endif

class TExTADOQuery : public TADOQuery
{
   typedef TADOQuery inherited;
  public:
    __fastcall virtual TExTADOQuery(Classes::TComponent* AOwner);
    __fastcall virtual ~TExTADOQuery(void);
}

装置2.cpp

#pragma hdrstop
#include "Unit2.h"
#pragma package(smart_init)

当我编译时得到错误消息。

[C++错误]第二单元.cpp(12):E2040声明错误终止

ADODB.hp

class DELPHICLASS TADOQuery;
class PASCALIMPLEMENTATION TADOQuery : public TCustomADODataSet 
{
    typedef TCustomADODataSet inherited;
private:
    Classes::TStrings* FSQL;
    int FRowsAffected;
    Classes::TStrings* __fastcall GetSQL(void);
    void __fastcall SetSQL(const Classes::TStrings* Value);
protected:
    void __fastcall QueryChanged(System::TObject* Sender);
public:
    __fastcall virtual TADOQuery(Classes::TComponent* AOwner);
    __fastcall virtual ~TADOQuery(void);
    int __fastcall ExecSQL(void);
    __property int RowsAffected = {read=FRowsAffected, nodefault};
__published:
    __property CommandTimeout  = {default=30};
    __property DataSource ;
    __property EnableBCD  = {default=1};
    __property ParamCheck  = {default=1};
    __property Parameters ;
    __property Prepared  = {default=0};
    __property Classes::TStrings* SQL = {read=GetSQL, write=SetSQL};
};

我不理解PASCALIMPLEMENTATION。

我怎样才能正确申报?

我忘记了分号。
class TExTADOQuery : public TADOQuery
{
   typedef TADOQuery inherited;
  public:
    __fastcall virtual TExTADOQuery(Classes::TComponent* AOwner);
    __fastcall virtual ~TExTADOQuery(void);
};