Есть ли способ загрузить параметры TSQLConnection из INI-файла во время разработки? - PullRequest
1 голос
/ 21 октября 2009

У меня есть SQLConnection, который разделяется между проектами, в runtine он читает конфигурацию из INI-файла, есть ли способ загрузить эту же конфигурацию во время разработки?

Ответы [ 3 ]

3 голосов
/ 03 ноября 2009

Вы должны создать свой собственный компонент для него, назовем его TCustomSQLConnection. Просто перетащите этот компонент в форму или в модуль данных, настройте настраиваемое свойство ConfigurationFile в своем INI-файле, и все готово. Если я правильно понимаю, это то, что вы хотите - мои извинения, если нет.

Пожалуйста, посмотрите на следующий код,

unit uSQLCustomConnection;

interface

uses
  SysUtils, Classes, DB, SqlExpr;

type
  TCustomSQLConnection = class(TSQLConnection)
  private
    FConfigurationFile  : String;
    procedure SetConfigurationFile(Value: TStrings);
    procedure LoadConfiguration(AConfigurationFile: String);
  public
    constructor Create(AOwner: TComponent); override;
    destructor  Destroy; override;
  published
    property ConfigurationFile : String read FConfigurationFile write SetConfigurationFile;
  end;

procedure Register;

implementation

constructor TCustomSQLConnection.Create(AOwner: TComponent);
begin
  inherited;
  FConfigurationFile := '';
end;

destructor TCustomSQLConnection.Destroy;
begin
// free memory if needed
  inherited;
end;

procedure TCustomSQLConnection.SetConfigurationFile(Value: String);
begin
  FConfigurationFile := Value;
  if FileExists(FConfigurationFile) then
    LoadConfiguration(FConfigurationFile);
end;

procedure TCustomSQLConnection.LoadConfiguration(AConfigurationFile: String);
begin
// Put the code that loads the configuration here
end;

procedure Register;
begin
  RegisterComponents('Samples', [TCustomSQLConnection]);
end;

end.

Все, что вам нужно сделать, это установить этот компонент после добавления собственного кода, который загружает конфигурацию, и все готово.

Я бы поместил этот компонент в модуль данных вместе с некоторыми другими компонентами, которые используются в проектах.

Надеюсь, это поможет.

3 голосов
/ 21 октября 2009

Один из способов - написать собственный потомок TSQLConnection.

0 голосов
/ 21 октября 2009

Я предполагаю, что вы используете Delphi 2009 или 2010. Вы можете сначала обратиться к моей статье в блоге: http://chee -yang.blogspot.com / 2008/09 / delphi-2009-using-dbx4-framework.html

Я уже давно отслеживаю эту проблему. В статье довольно много поднятых отчетов о КК. Некоторые уже решены в Delphi 2010. Пожалуйста, сначала посмотрите, и мы можем обсудить на более позднем этапе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...