Hi,
I'm currently using MyDAC (direct) and OraDAC (TNS & Direct) and I'm also looking for a replacement of the current InterBase & Firebird components I'm using.
In the future, I might also need Sybase ASE ad PostgreSQL support.
Would UniDac be the right choice here?
How good is Unicode support for Delphi 2009?
How quick is DevArt with updating the components to support new features in the various DBMSses?
Does it offer the same features as, for example, MyDAC and OraDAC (especially creating all sorts of blob streams and types in Oracle)?
(is there a cross-grade for MyDAC/OraDAC users?)
With regards,
Martijn Tonies
Is UniDac the better choice?
Yes, you can use UniDAC. It has full Unicode support. UniDAC has the most of ODAC and MyDAC features. But some features are not supported. For Oracle they are:
- OBJECT, TABLE, ARRAY, and XMLTYPE data types are not supported;
- Oracle specific components like TOraQueue, TOraChangeNotification, and TOraTrace are not supported.
UniDAC supports all MySQL data types. Some specific components are not supported: TMyBackup, TMyServerControl, TMyBuilder.
There is no cross-grade for MyDAC / ODAC users.
- OBJECT, TABLE, ARRAY, and XMLTYPE data types are not supported;
- Oracle specific components like TOraQueue, TOraChangeNotification, and TOraTrace are not supported.
UniDAC supports all MySQL data types. Some specific components are not supported: TMyBackup, TMyServerControl, TMyBuilder.
There is no cross-grade for MyDAC / ODAC users.
Hmm, I would need full support for those Oracle datatypes in my application when people connect via TNS.
If that's not supported for Oracle, I cannot go that route.
How's the current InterBase/Firebird support? Does it support fetching UTF8 data and converting it into Unicode and so on? Are statement types (eg: insert/delete etc) automatically detected after a Prepare? (via the API)
If that's not supported for Oracle, I cannot go that route.
How's the current InterBase/Firebird support? Does it support fetching UTF8 data and converting it into Unicode and so on? Are statement types (eg: insert/delete etc) automatically detected after a Prepare? (via the API)
You could create a more-or-less generic method, eg:Plash wrote:UniDAC supports converting UTF8 data to Unicode. Statements types are detected but TUniQuery does not have the SQLType property like TIBCQuery because SQLType values are specific to InterBase.
GetValue(ValueType: Integer): Variant
ValueType could be forwarded to the providers and the result could be DBMS-type dependent.
As for Oracle, the object types and XML and so on will not be supported in UniDac?
You can get SQLType for InterBase in UniDAC using the following code:
We do not plan to support object and XML types in UniDAC because these types are specific to Oracle and cannot be used with other DBMS.
Code: Select all
TGDSCommand(TDBAccessUtils.GetICommand(UniQuery1)).GetSQLType;
Well, that's a pity as this makes UniDac near unusable for Oracle applications.Plash wrote:We do not plan to support object and XML types in UniDAC because these types are specific to Oracle and cannot be used with other DBMS.

In this particular application, having a unified data access components suite would certainly help for programming, but it would need to support each DBMSses features. So I'm sorry to hear that.