New to Firebird

Posts   
 
    
Stevenn
User
Posts: 30
Joined: 26-Sep-2007
# Posted on: 31-Aug-2009 13:51:38   

Hi,

i have a client that needs something built against a Firebird database. Naturally, i want to use LLBLGen. The client sent me version Firebird-2.0.3.12981-1-Win32 of the Firebird server, which is what his clients are currently using and i installed this. Using FlameeRobin, i can read the tables etc so Firebord is running fine. If possible i would like to leave the current version in place.

I have downloaded the latest version of LLBLGen (27 July 2009). I have downloaded the latest .NET provider, as linked from your Driver Updates section. However, i am not sure where to put this provider. I tried putting it in <LLBLLGen>\Drivers\Firebird folder, but i still receive an exception when trying to Test Connection. The provider page only caters for 1.7.2 and 2.5 so i used the 2.5 version, i assume it's backwards compatible. confused When i test the connection I am getting the familiar exception:

Could not load file or assembly 'FirebirdSql.Data.FirebirdClient, Version=2.0.1.0, Culture=neutral, PublicKeyToken=3750abcc3150b00c' or one of its dependencies. The system cannot find the file specified.

I read in this thread (http://www.llblgen.com/tinyforum/Messages.aspx?ThreadID=7891&HighLight=1) that 2.0.1 was a beta release and the user had to install version 2.0 of the provider, but that doesn't seem to be available anymore. Is there another solution? And where exactly should i install it to as it is a zip file with a single dll in it?

Thanks in advance.

Steven.

Walaa avatar
Walaa
Support Team
Posts: 14950
Joined: 21-Aug-2005
# Posted on: 31-Aug-2009 15:59:14   

I think there is an installer package(*.msi) available to download. http://www.firebirdsql.org/index.php?op=files&id=netprovider

You may also install the dll in the GAC. Please chek the following link: http://lnssoftware.dnsalias.net:81/blog/?p=56

When i test the connection I am getting the familiar exception:

Could not load file or assembly 'FirebirdSql.Data.FirebirdClient, Version=2.0.1.0, Culture=neutral, PublicKeyToken=3750abcc3150b00c' or one of its dependencies. The system cannot find the file specified.

Please add an assembly binding redirction section in the llblgenpro.exe.config file as shown on the thread you've mentioned. To redirect from the version needed (2.0.1.0) to the version you have installed (2.0.3.x).

Stevenn
User
Posts: 30
Joined: 26-Sep-2007
# Posted on: 31-Aug-2009 16:43:54   

Hi Walaa,

thanks for the response. I installed the provider, which installs some dlls to <program files\firebirdclient>.

I have tried all the things you suggested.

In the LLBLGenPro.exe.config I changed (it was already there): <dependentAssembly> <assemblyIdentity name="SD.LLBLGen.Pro.DBDrivers.FirebirdDBDriver" publicKeyToken="ca73b74ba4e3ff27" culture="neutral"/> <bindingRedirect oldVersion="1.0.2003.1-2.5.9.9" newVersion="2.6.0.0"/> </dependentAssembly>

to: <dependentAssembly> <assemblyIdentity name="SD.LLBLGen.Pro.DBDrivers.FirebirdDBDriver" publicKeyToken="3750abcc3150b00c" culture="neutral"/> <bindingRedirect oldVersion="1.0.2003.1-2.5.9.9" newVersion="2.0.3.12981"/> </dependentAssembly>

I also tried with newVersion="2.5.0.0" as this is the version of the FirebirdSql.Data.FirebirdClient.dll file in Windows\Assembly folder, and tried chaing it to newVersion="2.0.3.0". Still get the same error.

I know there must be loads of people that are using Firebird, but i just can't understand what i am doing wrong.

Thanks Steven

Walaa avatar
Walaa
Support Team
Posts: 14950
Joined: 21-Aug-2005
# Posted on: 31-Aug-2009 18:04:37   

That's not the right assembly. The application is complaining about the FirebirdSql.Data.Firebird assembly.

You should have something like:

      <dependentAssembly>
        <assemblyIdentity name="FirebirdSql.Data.Firebird" publicKeyToken="3750abcc3150b00c"/>
        <bindingRedirect oldVersion="xxxxxx" newVersion="xxxxx"/>
      </dependentAssembly>
Stevenn
User
Posts: 30
Joined: 26-Sep-2007
# Posted on: 01-Sep-2009 09:45:39   

Duh! Thanks, that sorted it out.

Give yourself a pat on the back. Support here is fantastic. sunglasses

Thanks for the patience.

Steven

wcpm
User
Posts: 4
Joined: 23-Sep-2009
# Posted on: 23-Sep-2009 15:32:58   

I have the same problem but i don't resolved it, using this instructions. I have LLBL GenPro 2.5 and FirebirdSql.Data.FirebirdClient.dll version 2.5.1.0. My file LLBLGenPro.exe.config is here:

<?xml version="1.0"?>

<!-- LLBLGen Pro Configuration File. Modify with care. Always keep a backup copy when you are --> <!-- making changes. See the documentation for help on the possible settings. Use caMel casing --> <!-- for the tagnames. -->

<configuration> <configSections> <!-- The GraphLib configuration settings for the Netron graph library --> <section name="GraphLibs" type="Netron.GraphLib.Configuration.GraphLibConfigurationHandler,NetronGraphLib"/> </configSections> <appSettings> <!-- Specification of the root folder where LLBLGen Pro will search for database driver assemblies. --> <!-- This path is always relative to the application folder. --> <add key="databaseDriversRootFolder" value="Drivers"/> <!-- Specification of the root folder where LLBLGen Pro will search for task performer assemblies. --> <!-- This path is always relative to the application folder. --> <add key="taskPerformersRootFolder" value="TaskPerformers"/> <!-- Specification of the root folder where LLBLGen Pro will search for plugin assemblies --> <!-- This path is always relative to the application folder. --> <add key="pluginsRootFolder" value="Plugins"/> <!-- Specification of the folder where LLBLGen Pro will search for additional templates related definition files. --> <!-- This path is always relative to the application folder. --> <add key="additionalTemplatesFolder" value="AdditionalTemplates"/> <!-- Specification of the root folder where LLBLGen Pro will search for type converter assemblies. --> <!-- This path is always relative to the application folder. --> <add key="typeConvertersRootFolder" value="TypeConverters"/> <!-- Specification of the root folder of the tasks definition files and related files--> <!-- This path is always relative to the application folder. --> <add key="tasksRootFolder" value="Tasks"/> <!-- Specification of the root folder of the templatebindings definition files and related files--> <!-- This path is always relative to the application folder. --> <add key="templatesRootFolder" value ="Templates"/> </appSettings> <startup> <!-- LLBLGen Pro requires .net 2.0 --> <supportedRuntime version="v2.0.50727"/> </startup> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <!-- assembly redirects to be able to load project created with older versions into this version.--> <dependentAssembly> <assemblyIdentity name="SD.LLBLGen.Pro.ApplicationCore" publicKeyToken="ca73b74ba4e3ff27" culture="neutral"/> <bindingRedirect oldVersion="1.0.2003.1-2.4.9.9" newVersion="2.5.0.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="SD.LLBLGen.Pro.DBDriverCore" publicKeyToken="ca73b74ba4e3ff27" culture="neutral"/> <bindingRedirect oldVersion="1.0.2003.1-2.4.9.9" newVersion="2.5.0.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="SD.LLBLGen.Pro.GeneratorCore" publicKeyToken="ca73b74ba4e3ff27" culture="neutral"/> <bindingRedirect oldVersion="1.0.2003.1-2.4.9.9" newVersion="2.5.0.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="LLBLGenPro" publicKeyToken="ca73b74ba4e3ff27" culture="neutral"/> <bindingRedirect oldVersion="1.0.2003.1-2.4.9.9" newVersion="2.5.0.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="SD.LLBLGen.Pro.DBDrivers.OracleDBDriver" publicKeyToken="ca73b74ba4e3ff27" culture="neutral"/> <bindingRedirect oldVersion="1.0.2003.1-2.4.9.9" newVersion="2.5.0.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="SD.LLBLGen.Pro.DBDrivers.SqlServerDBDriver" publicKeyToken="ca73b74ba4e3ff27" culture="neutral"/> <bindingRedirect oldVersion="1.0.2003.1-2.4.9.9" newVersion="2.5.0.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="SD.LLBLGen.Pro.DBDrivers.OracleDBDriver10g" publicKeyToken="ca73b74ba4e3ff27" culture="neutral"/> <bindingRedirect oldVersion="1.0.2003.1-2.4.9.9" newVersion="2.5.0.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="SD.LLBLGen.Pro.DBDrivers.DB2DBDriver" publicKeyToken="ca73b74ba4e3ff27" culture="neutral"/> <bindingRedirect oldVersion="1.0.2003.1-2.4.9.9" newVersion="2.5.0.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="SD.LLBLGen.Pro.DBDrivers.AccessDBDriver" publicKeyToken="ca73b74ba4e3ff27" culture="neutral"/> <bindingRedirect oldVersion="1.0.2003.1-2.4.9.9" newVersion="2.5.0.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="SD.LLBLGen.Pro.DBDrivers.FirebirdDBDriver" publicKeyToken="ca73b74ba4e3ff27" culture="neutral"/> <bindingRedirect oldVersion="1.0.2003.1-2.4.9.9" newVersion="2.5.0.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="FirebirdSql.Data.Firebird" publicKeyToken="3750abcc3150b00c"/> <bindingRedirect oldVersion="2.5.0.0" newVersion="2.5.1.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="SD.LLBLGen.Pro.DBDrivers.MySqlDBDriver" publicKeyToken="ca73b74ba4e3ff27" culture="neutral"/> <bindingRedirect oldVersion="1.0.2003.1-2.4.9.9" newVersion="2.5.0.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="SD.LLBLGen.Pro.DBDrivers.OracleDBDriverDataDirect" publicKeyToken="ca73b74ba4e3ff27" culture="neutral"/> <bindingRedirect oldVersion="1.0.2003.1-2.4.9.9" newVersion="2.5.0.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="SD.LLBLGen.Pro.TaskPerformers" publicKeyToken="ca73b74ba4e3ff27" culture="neutral"/> <bindingRedirect oldVersion="1.0.2003.1-2.4.9.9" newVersion="2.5.0.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="SD.LLBLGen.Pro.TDLInterpreter" publicKeyToken="ca73b74ba4e3ff27" culture="neutral"/> <bindingRedirect oldVersion="1.0.2003.1-2.4.9.9" newVersion="2.5.0.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="SD.LLBLGen.Pro.TDLParser" publicKeyToken="ca73b74ba4e3ff27" culture="neutral"/> <bindingRedirect oldVersion="1.0.2003.1-2.4.9.9" newVersion="2.5.0.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="SD.LLBLGen.Pro.LptParser" publicKeyToken="ca73b74ba4e3ff27" culture="neutral"/> <bindingRedirect oldVersion="1.0.2003.1-2.4.9.9" newVersion="2.5.0.0"/> </dependentAssembly> <!-- separate assembly paths. These are hints to help fusion when it gets confused. --> <probing privatePath="SqlServerUDTAssemblies;Drivers\Oracle;Drivers\SqlServer;Drivers\Firebird;Drivers\Oracle10g;Drivers\Access;Drivers\DB2;Drivers\OracleMS;Drivers\SybaseAse;Drivers\SybaseAsa;Drivers\MySql;Drivers\PostgreSql;TaskPerformers;ReferencedAssemblies;Plugins;TypeConverters"/> </assemblyBinding> </runtime> <GraphLibs> <GraphLib location="SD.LLBLGen.Pro.NetronShapes.dll"/> </GraphLibs> </configuration>

Can't you help me please?

Walaa avatar
Walaa
Support Team
Posts: 14950
Joined: 21-Aug-2005
# Posted on: 23-Sep-2009 15:44:08   

And what's the error you are getting?

wcpm
User
Posts: 4
Joined: 23-Sep-2009
# Posted on: 23-Sep-2009 15:49:32   

Message:

Não foi possível carregar arquivo ou assembly 'FirebirdSql.Data.FirebirdClient, Version=2.0.1.0, Culture=neutral, PublicKeyToken=3750abcc3150b00c' ou uma de suas dependências. A definição do manifesto do assembly localizado não corresponde à referência do assembly. (Exceção de HRESULT: 0x80131040)

Stack Trace:

-----[Core exception]-------------------- em SD.LLBLGen.Pro.DBDrivers.Firebird.FirebirdConnectionData._testConnectionButton_Click(Object sender, EventArgs e) em System.Windows.Forms.Control.OnClick(EventArgs e) em System.Windows.Forms.Button.OnClick(EventArgs e) em System.Windows.Forms.Button.WndProc(Message& m) em System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) em System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) em System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Source: SD.LLBLGen.Pro.DBDrivers.FirebirdDBDriver

I have to change anything in the file driver.config?

Walaa avatar
Walaa
Support Team
Posts: 14950
Joined: 21-Aug-2005
# Posted on: 23-Sep-2009 16:11:03   

The version of the application you have is asking for (FirebirdSql.Data.FirebirdClient, Version=2.0.1.0).

So instead of:

<dependentAssembly> <assemblyIdentity name="FirebirdSql.Data.Firebird" publicKeyToken="3750abcc3150b00c"/> <bindingRedirect oldVersion="2.5.0.0" newVersion="2.5.1.0"/> </dependentAssembly>

You should use:

 <dependentAssembly>
        <assemblyIdentity name="FirebirdSql.Data.Firebird" publicKeyToken="3750abcc3150b00c"/>
        <bindingRedirect oldVersion="2.0.1.0" newVersion="2.5.1.0"/>
 </dependentAssembly>
wcpm
User
Posts: 4
Joined: 23-Sep-2009
# Posted on: 23-Sep-2009 16:22:03   

The same error is show. I use:

<dependentAssembly> <assemblyIdentity name="FirebirdSql.Data.Firebird" publicKeyToken="3750abcc3150b00c"/> <bindingRedirect oldVersion="2.0.1.0" newVersion="2.5.1.0"/> </dependentAssembly>

Should I keep this?

<dependentAssembly> <assemblyIdentity name="SD.LLBLGen.Pro.DBDrivers.FirebirdDBDriver" publicKeyToken="ca73b74ba4e3ff27" culture="neutral"/> <bindingRedirect oldVersion="1.0.2003.1-2.4.9.9" newVersion="2.5.0.0"/> </dependentAssembly>

wcpm
User
Posts: 4
Joined: 23-Sep-2009
# Posted on: 23-Sep-2009 16:30:44   

I found the error:

Before: <dependentAssembly> <assemblyIdentity **name="FirebirdSql.Data.Firebird" **publicKeyToken="3750abcc3150b00c"/> <bindingRedirect oldVersion="2.0.1.0" newVersion="2.5.1.0"/> </dependentAssembly>

After: <dependentAssembly> <assemblyIdentity name="FirebirdSql.Data.FirebirdClient" publicKeyToken="3750abcc3150b00c"/> <bindingRedirect oldVersion="2.0.1.0" newVersion="2.5.1.0"/> </dependentAssembly>

Thank you for your helping. Sorry, my english is very poor.

dvdwouwe
User
Posts: 59
Joined: 24-Jul-2009
# Posted on: 03-Oct-2009 16:15:30   

Hi,

BTW There is no version 2.5.1.0 of Firebird .Net provider, there is a version called 2.5.1.

Danny