I am taking the plunge and starting on my first FireDAC project. I am working in XE8, freshly installed on win32. When I set my connection DriverName to "ODBC", the FireDAC.Phys.ODBC, and FireDAC.Phys.ODBCDef units get included and I can no longer build my project, and it no longer compiles due to the following error:

I am taking the plunge and starting on my first FireDAC project.  I am working in XE8, freshly installed on win32.  When I set my connection DriverName to "ODBC", the FireDAC.Phys.ODBC, and FireDAC.Phys.ODBCDef units get included and I can no longer build my project, and it no longer compiles due to the following error:

[dcc32 Fatal Error] data.pas(18): F2613 Unit 'FireDAC.Phys.TDataMeta' not found.
  data.pas(18): Unit 'FireDAC.Phys.TDataMeta' is used by 'FireDAC.Phys.ODBC'

Bug?

Comments

  1. Nathan Wild Could it be you accidentally selected some mobile target platform? Because these units only exist for win32/64 and osx

    However it seems you're not the only one with that problem - unfortunately no solution given: https://forums.embarcadero.com/thread.jspa?threadID=114618

    Marco Cantù ping

    ReplyDelete
  2. Which version of XE8? Pro might not include it, not sure... If I follow your steps it works for me.

    ReplyDelete
  3. Create a new project (vcl application), drop a FiredDAC connection, run project. Works fine.

    Change the DriverName to "ODBC", run project. Fails with the above error.

    I have xe8 pro w/mobile...

    ReplyDelete
  4. Marco Cantù do you mean that I may not be able to connect to odbc data sources with the pro version!? Because this worked in xe7 when I did very basic testing some months ago...

    ReplyDelete
  5. Lars Fosdal I haven't even tried connecting to anything yet. As soon as those units get included, the project no longer builds. I'll try removing them and assigning properties programmatically... But it seems a bit odd this wouldn't work in the ide?

    ReplyDelete
  6. Lars Fosdal Marco Cantù: Update...  I created a new project, dropped in a TFDConnection component, added a button to assign DriverName := 'ODBC' and Params.Database := a valid DSN on my system.  As soon as I set Connected := TRUE, I get the following exception:

    [FireDAC][Phys]-300; Driver [ODBC] is not registered.  To register it, you can drop component [TFDPhysODBCDriverLink] into your project.

    Doing this seems to just include the FireDAC.Phys.ODBCDef, FireDAC.Phys.ODBCBase,
      FireDAC.Phys.ODBC units, and my project no longer builds due to the initial error I posted above.

    ReplyDelete
  7. Sure, without those units you can't compile, no matter if the connection is created at design time or runtime. if the features is not part of the Professional version, there should be no "easy" to use to make it work, or I'd get worried... I mean, doesn't work by design. There are several other drivers available in Pro...

    ReplyDelete
  8. This exact same scenario worked in xe7. If I am understanding you correctly, odbc connections are not supported with FireDAC in xe8 professional??? I dearly hope this is not the case as this is a requirement for all of my development, and without it I'm toast.

    ReplyDelete
  9. Marco Cantù Update: I am able to connect to my datasource perfectly at design-time if I use the interface provided by double-clicking on the FDConnection.  I set the Driver ID to ODBC and my DataSource and am able to connect.  If I drop on a FDTable, DataSource and DBGrid, I connect to tables and see data perfectly at design time.  It still insists on FireDAC.Phys.ODBC and FireDAC.Phys.ODBCDef, which gives me the error:

    F2613 Unit 'FireDAC.Phys.TDataMeta' not found. Unit6.pas(12): Unit FireDAC.Phys.TDataMeta' is used by 'FireDAC.Phys.ODBC'


    So...  I feel a lot better knowing that I can connect to ODBC Datasources (had me a bit scared there!) but there appears to be a bug of some sort in FireDAC.Phys.ODBC (or a missing unit)?

    Please confirm if I am correct and I will submit the bug ASAP if needed.  Hopefully we can get this fixed ASAP as I can't build anything! :(

    ReplyDelete
  10. I've asked Dmitry to have a look to this thread...

    ReplyDelete
  11. Turns out I was wrong, ODBC is in Pro, and there are missing files. We'll figure out ASAP how to deliver them...

    ReplyDelete
  12. Excellent thanks so much! Had me scared for a minute there. I look forward to your solution (hopefully by Tuesday, when I'm back at work, otherwise I'm dead in the water since I can't build anything) :)

    ReplyDelete
  13. Marco Cantù Bumping this.  I am still unable to compile any applications that connect to our database (roughly 95% of what I do) since upgrading to XE8.  I had the earlier part of the week off, but I am unable to do my job due to the units that are missing from the XE8 install.  Is there a solution for this?  Should I be taking this up through other channels?  Is this as simple as someone sending me a few missing units?  Please please please help ASAP.  If I don't have this working by Monday, I will need to spend the time getting an XE7 environment up and running again :(

    ReplyDelete
  14. Best option would be to call support, if you are under update subscription, but probably also if not. They should be the right conduit. Feel free to mention I know about the issue and they can reach me for further information.

    ReplyDelete
  15. Marco Cantù  Thanks for your assistance thus far.  After spending 45 minutes on the phone with support, we have determined that RadStudio XE8 Pro can not connect to ODBC datasources via FireDAC without purchasing an extra FireDAC Client/Server update.  The support technician informed me that XE8 Pro does not include FireDAC.  Before we spend money, can you please confirm that this is so.  From earlier in this thread, I had the impression that FireDAC ODBC was possible in Pro.  Again, I'm dead in the water at this point, so any help is appreciated.

    ReplyDelete
  16. Similar problem trying to connect to PostGres with Delphi Berlin 10.1 Professional

    ReplyDelete

Post a Comment