I have a SQLConnection which is shared between projects, in runtine it reads the configuration from an ini file, is there some way to load this same configuration in design time?
views:
270answers:
3I assume you are using Delphi 2009 or 2010. You may refer to my blog article first: http://chee-yang.blogspot.com/2008/09/delphi-2009-using-dbx4-framework.html
I have track this problem for quite some time. In the article, there are quite a number of QC report raised. Some already solved in Delphi 2010. Please have a look first and we may discuss in later stage.
You have to create your own custom component for it, let's call it TCustomSQLConnection. Just drop this component on the form or on a datamodule, set up a custom property called ConfigurationFile to your ini file, and you're good to go. If I understand correctly, this is what you want - my appologies if not.
Please take a look at the following code,
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.
All you have to do is to install this component after adding your own code that loads the configuration, and you're good to go.
I would drop this component on a Data Module, alongside with some other components that are shared between projects.
Hope it helps.