On Thu, 16 Aug 2012, Ludo Brands wrote:
Unfortunately your example illustrates nicely the difference.
InitializeInterbase is unknown in the fpc I'm using. InitialiseIBase60 does
exist but you have to add the non-trivial ibase60dyn to the uses clause to
get to it (Google has 146 hits for "InitialiseIBase60", non of the hits are
documentation or wiki pages). If it where a property of TIBConnection, non
of these difficulties would exist.
A valid point.
Remains the fact that I think that - no matter what the other component sets do
- the library name should NOT be a connection component property, unless you
allow each connection to use a different library. Since that is not possible
with the current *dyn units, the property should not be made at this level.
What is then the solution ?
If you look at AnyDac, you'll see that it is the only DB component set that IMHO
does it correctly. It has a separate component for the library (the "physical link")
of each type of connection.
You drop this component on the form and set the library name (it has a reasonable default).
Only one such component is needed for the whole application, no matter how much connections you make..
Now, I happened to think that this may be a bit overkill, which is why I proposed
a component editor popup to set the library, which can simply insert the correct
statement in code.
But if people want a point-and-click interface, we can always make a new
component:
TSQLDBLibraryLoader or so.
With a property for the library name of each supported DB, so we need only 1
component.
Michael.
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal