> 
> We differ only in the implementation of the 'easier way':
> 
> I meant that I do not see the advantage of writing something like
> 
>   With Inifile do
>     begin
>     
> IBConnection1.LibraryName:=ReadString('Connection','libraryNam
> e','fbclient.dll');
>     end
> 
> over
>    With IniFile do
>      begin
>      
> InitializeInterbase(ReadString('Connection','libraryName','fbc
> lient.dll'));
>      end;
> 

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.  


> Which is what you will end up writing in any real-world 
> scenario. I have never seen a real project where the 
> databasename set in 
> the OI was the one actually used in the deployed app.
> 
> I cannot remember when I've last used the OI for setting the 
> username/password/databasename for a connection.
> 

That is your usage case. The fact that username/password/databasename
properties exist in all db components I know of seems to suggest that there
are usage cases where it is used. I happen to use these properties
frequently for writing quick'n dirty (RAD) test programs or mock-ups or
during the development phase of a program. I hope that is still inside the
supported use of fpc? 

> That, combined with the fact that the library name is project 
> wide, lead me to the conclusion that there is no need in a 
> property at the 
> connection level.
> 
> That said, if an easier way is needed to set the library name 
> in the IDE, I'm all for it. I just don't think it should be a 
> TSQLConnection property, 
> for the reasons explained above.
> 

Made a quick tour of the other dbcomponents I have on my system: Zeos
(TZConnection.LibraryLocation) , MDO (TMDODataBase.ClientLib), Delphi's
DBExpress (TSQLConnection.VendorLib). They have all this useless component
property to specify a project wide library. True, sqldb doesn't claim
compatibility with anything, so that shouldn't be a reason to do the same as
the others. But afaik the other components don't have the recurring
discussions on libraries not found or wrong library loaded, etc. 

Ludo

_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to