Has anyone here moved from FIBPlus to IBDAC?

Has anyone here moved from FIBPlus to IBDAC?
I am moving since FIBPlus died some years ago, but IBDAC lacks some nice features that FIBPlus has.
Some features I already ported to IBDAC, but has I move my project source code I find more features missing.
It's weird that IBDAC being here for so long, lacks so much features.

Comments

  1. What are the features that you are missing?

    I'm in the middle of migrating an application from FIB Plus to IBDAC, and I did find that somethings are a bit different between the two, but otherwise similar. Although, that is probably how I use it.

    One change that I did need to do was to replace the AddCondition method by AddWhere, for dynamically building the WHERE clause in a TIBCQuery, and to call the method TIBCQuery.RestoreSQL, before doing building the WHERE clause, just to reset to the original query.

    Also, if using persistent fields, I needed to replace them, since FIB Plus had its own persistent field types, instead of using the standard ones.

    ReplyDelete
  2. There are many missing.
    DefaultFieldFormats (to set default date,time,numeric field format),
    GUID handling,
    FieldOrigin handling,
    RefreshTransactionKind (to set refresh operations to use the update transaction),
    UpdateObject in FIBPlus has more features and you can have multiple UpdateObjects for each FIBDataSet, where in IBDAC you can only have one and it replaces the default update in IBCQuery.
    Conditions didn't exist until a few versions ago. But are still run-time only.

    Many of these I already implemented.

    ReplyDelete
  3. Honestly, I've never liked the DefaultFieldFormats in FIB Plus, because it always gave me headaches, and I needed to write some code to overwrite the field formats, depending on the regional settings of the computer that our software is running. For, the RefreshTransactionKind, I never did change it, since the update transaction was short to perform the insert, update or delete, then immediately commit, and the read transaction was a read-only/read committed transaction. And, if I'm not mistaken, FIB Plus was the only one that permitted multiple UpdateObjects for each dataset. But, with IBDAC, it is possible to have more than one statement for the SQLInsert, SQLUpdate and SQLDelete properties, simply end each statement with a semi-colon.

    ReplyDelete
  4. Daniel Rail I implemented my own version of DefaultFieldFormats that fixes the issues I had in FIBPlus.
    The RefreshTransactionKind is something I use a lot, since if you have different transaction for update and read it makes sense to have a refresh done using the update transaction. Usually we need to refresh after a post to get new data that might get modified by the database and without this feature, the refresh doesn't work properly.

    ReplyDelete
  5. If you are using Firebird 2.0 and up, try setting the Options.ReturnParams := True and Options.StrictUpdate := False. This will allow you to use the RETURNING clause with the INSERTs and the UPDATEs. You can find more information in their help, and you can always ask on their forum or send them an e-mail.

    ReplyDelete
  6. silly Q - but have you tried FireDAC, I have to move an app with FibPlus, IBX & BDE over FB to Berlin.

    ReplyDelete

Post a Comment