When stepping through the vcl code, I noticed that DbxSda is showing up as a dbx 3.0 driver, not a 4.0 one. Is DbxSda fully compatible with Dbx4.0, or does it just use the dbx adapter?
We're retrieving MetaData via TCustomSQLDataSet, and Dbx 4.0 formats table and field names differently (no underscore in dbx4 for one). This is an issue for us and need to change our utility around if it won't support dbx 4.
DBXCommon.TDBXDatabaseMetaData.Init sets the MetaDataVersion to 4 if the Reader.ColumnCount >=10, the reader for DbxSda only has 6 columns.
Any help or suggestion would be greatly appreciated.
Thank you,
Rich Werning
DbxSda compatiblity issue with dbx4.0?
Think I've answered my own question, reviewing the dbexp source, the function TCRSQLMetaData.getDatabase only creates the 6 fields. The CodeGear unit DBXCommon procedure TDBXConnection.GetCommands implements extended commands if the command type is TDBXConectionEx, and most of those commands aren't implemented in dbexp. Specifically I need the getViews and getIndexColumns.
I'm caught in a catch 22 here. The CodeGear drivers are unstable, we had too many issues with them and decided to go back to the CoreLab drivers we used without issue for years. But now I don't have access to all of the MetaData that I need.
Are you planning on fully implementing the dbx4 functionality? If so, do you have any idea of a time frame (next release, this year, never?). Also, have you implemented those extended features in the Oracle driver? We're currently trying to get licenses - sales hasn't reponded to our email..
- and need to know if I'm going to run into the same problem with Oracle.
Thank you,
Rich Werning
I'm caught in a catch 22 here. The CodeGear drivers are unstable, we had too many issues with them and decided to go back to the CoreLab drivers we used without issue for years. But now I don't have access to all of the MetaData that I need.
Are you planning on fully implementing the dbx4 functionality? If so, do you have any idea of a time frame (next release, this year, never?). Also, have you implemented those extended features in the Oracle driver? We're currently trying to get licenses - sales hasn't reponded to our email..

Thank you,
Rich Werning
All Core Lab drivers do not support extended metadata, and currently we have no plans to support them.
You can get a list of views using 'GetTables % View' command. You can also get the metadata for index columns using 'GetIndexes' command.
Please forward your e-mail to our sales again, and provide an alternative e-mail address that we can use to reply you.
You can get a list of views using 'GetTables % View' command. You can also get the metadata for index columns using 'GetIndexes' command.
Please forward your e-mail to our sales again, and provide an alternative e-mail address that we can use to reply you.
Thank you for responding, I've followed up with the sales team.
I'm not sure what you mean for using the 'GetIndexes' command. I've tried working with the commandtext and using the options from GetCommandTypes (SQLConnection1.DBXConnection.GetCommandTypes), but haven't had any success using them. Unfortunately there is little info to be found in blogs, forums or help files regarding using metadata.
If you could provide an example I'd greatly appreciate it.
Thanks
Rich
I'm not sure what you mean for using the 'GetIndexes' command. I've tried working with the commandtext and using the options from GetCommandTypes (SQLConnection1.DBXConnection.GetCommandTypes), but haven't had any success using them. Unfortunately there is little info to be found in blogs, forums or help files regarding using metadata.
If you could provide an example I'd greatly appreciate it.
Thanks
Rich
I found it, the problem was mine on the way I was using it. This is whats working for me now.
function GetTableIndexColumns30(aConnection: TSQLConnection; value: string) : OleVariant;
begin
[...]
AIndexDataSet := TSQLDataSet.create(nil);
AIndexDataSet.SqlConnection := aConnection;
AIndexDataSet.DbxCommandType := TDBXCommandTypes.DbxMetaData;
AIndexDataSet.CommandText := 'GetIndexes ' + Value;
AIndexDataSet.Open;
[...]
end;
Thanks for the help, at least I have it working now. I am curious as to why you're not going to support the extended metadata though.
- Rich Werning
function GetTableIndexColumns30(aConnection: TSQLConnection; value: string) : OleVariant;
begin
[...]
AIndexDataSet := TSQLDataSet.create(nil);
AIndexDataSet.SqlConnection := aConnection;
AIndexDataSet.DbxCommandType := TDBXCommandTypes.DbxMetaData;
AIndexDataSet.CommandText := 'GetIndexes ' + Value;
AIndexDataSet.Open;
[...]
end;
Thanks for the help, at least I have it working now. I am curious as to why you're not going to support the extended metadata though.
- Rich Werning