FastReport VCL 表开发人员手册:数据库组件

我们创建 FDatabase:TIBDatabase 对象,然后定义我们希望设计者拥有的属性。为每个属性编写了“Get”和“Set”方法。

以下组件是TfrxIBXDatabase其中之一。它代表了一个包装器TIBDatabase。

  TfrxIBXDatabase = class(TfrxCustomDatabase)  private    FDatabase: TIBDatabase;    FTransaction: TIBTransaction;    function GetSQLDialect: Integer;    procedure SetSQLDialect(const Value: Integer);  protected    procedure SetConnected(Value: Boolean); override;    procedure SetDatabaseName(const Value: String); override;    procedure SetLoginPrompt(Value: Boolean); override;    procedure SetParams(Value: TStrings); override;    function GetConnected: Boolean; override;    function GetDatabaseName: String; override;    function GetLoginPrompt: Boolean; override;    function GetParams: TStrings; override;  public    constructor Create(AOwner: TComponent); override;    destructor Destroy; override;    class function GetDescription: String; override;    procedure SetLogin(const Login, Password: String); override;    property Database: TIBDatabase read FDatabase;  published    { list TIBDatabase properties. Note – some properties are already exist in base class }    property DatabaseName;    property LoginPrompt;    property Params;    property SQLDialect: Integer read GetSQLDialect write SetSQLDialect;    {  Connected property should be placed last! }    property Connected;  end;constructor TfrxIBXDatabase.Create(AOwner: TComponent);begin  inherited;  { create component – connection }  FDatabase := TIBDatabase.Create(nil);  { create component - transaction (specificity of  IBX) }  FTransaction := TIBTransaction.Create(nil);  FDatabase.DefaultTransaction := FTransaction;  { do not forget this line! }  Component := FDatabase;end;destructor TfrxIBXDatabase.Destroy;begin  { delete  transaction }  FTransaction.Free;  { connection will be deleted automatically in parent class }  inherited;end;{ component description will be displayed next to icon in objects toolbar }class function TfrxIBXDatabase.GetDescription: String;begin  Result := 'IBX Database';end;{ redirect component properties to  cover properties and vice versa }function TfrxIBXDatabase.GetConnected: Boolean;begin  Result := FDatabase.Connected;end;function TfrxIBXDatabase.GetDatabaseName: String;begin  Result := FDatabase.DatabaseName;end;function TfrxIBXDatabase.GetLoginPrompt: Boolean;begin  Result := FDatabase.LoginPrompt;end;function TfrxIBXDatabase.GetParams: TStrings;begin  Result := FDatabase.Params;end;function TfrxIBXDatabase.GetSQLDialect: Integer;begin  Result := FDatabase.SQLDialect;end;procedure TfrxIBXDatabase.SetConnected(Value: Boolean);begin  FDatabase.Connected := Value;  FTransaction.Active := Value;end;procedure TfrxIBXDatabase.SetDatabaseName(const Value: String);begin  FDatabase.DatabaseName := Value;end;procedure TfrxIBXDatabase.SetLoginPrompt(Value: Boolean);begin  FDatabase.LoginPrompt := Value;end;procedure TfrxIBXDatabase.SetParams(Value: TStrings);begin  FDatabase.Params := Value;end;procedure TfrxIBXDatabase.SetSQLDialect(const Value: Integer);begin  FDatabase.SQLDialect := Value;end;{ this method is used by DB connection wizard }procedure TfrxIBXDatabase.SetLogin(const Login, Password: String);begin  Params.Text := 'user_name=' + Login + #13#10 + 'password=' + Password;end;

如您所见,这并没有那么复杂。我们创建 FDatabase:TIBDatabase 对象,然后定义我们希望设计者拥有的属性。为每个属性编写了“Get”和“Set”方法。

如果您对 FastReport 感兴趣,欢迎加入 FastReport QQ 交流群:702295239

还想要更多吗可以点击阅读【FastReport 表2021最新资源盘点】查找需要的教程资源。上是FastReport .NET慧正在 火热销售中!>>查看价格详情

标签:

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年6月11日
下一篇 2021年6月12日

相关推荐

发表回复

登录后才能评论