Page 1 of 1

TDBXMetaDataError Metadata GetIndexes

Posted: Wed 31 Jan 2018 10:43
by Eurocg
Hey Guys,

we have some strange problem at one of our customers.

We get the following error when our application tries to open a dataset from one table. This error occurs only by this customer. We already dump the complete database into our Oracle installation (Same Version as the customer has:, and we dont get this error. So we cant reproduce the error in our test-environment.

Whats happening:

Code: Select all

dm1.SQLDataSet1.CommandText := 'SELECT * FROM T_DruDoc WHERE drdnr = ' + nr1;
dm1.SQLDataSet1.Open; << Line 649 from FormDLL.pas
Class: TDBXMetaDataError
Message: Der Metadatenbefehl Getlndexes konnte nicht analysiert werden. Problem befindet sich in der Nähe von: Originalabfrage: Getlndexes DB3219 . T_DRUDOC ."

[0E5A0DFAKeurowig_report.dll} Data.DBXMetaDataReader.TDBXBaseMetaDataReader.ParseDone [0E5A062EKeurowig_report.dll} Data.DBXMetaDataReader.TDBXBaseMetaDataReader.ParseGetObjectName [0E59FECBHeurowig_report.dll} Data.DBXMetaDataReader.TDBXBaseMetaDataReader.ParseMetaDataCommand [0E5A0E7B]{eurowig_report.dll} Data.DBXMetaDataReader.TDBXBaseMetaDataReader.FetchCollection [0E485F87Heurowig_report.dll} Data.DBXCommon.TDBXCommand.GetText
[0E5A6CF3Heurowig_report.dll} Data.DBXMetaDataCommandFactory.TDBXMetaDataCommand.DerivedExecuteQuery
[0E485D95Keurowig_report.dll} Data.DBXCommon.TDBXCommand.ExecuteQuery
[0E4862E3]{eurowig_report.dll} Data.DBXCommon.TDBXMorphicCommand.ExecuteQuery
[0E522C1C]{eurowig_report.dll} Data.SqlExpr.TCustomSQLDataSet.OpenSchema
[0E520BAE]{eurowig_report.dll} Data.SqlExpr.TCustomSQLDataSet.ExecuteStatement
[0E519D2CHeurowig_report.dll} Data.SqlExpr.TCustomSQLDataSet.InternalOpen
[0E3FDEEEKeurowig_report.dll} Data.DB.TDataSet.DolnternalOpen
[0E3FDF9EHeurowig_report.dll} Data.DB.TDataSet.OpenCursor
[0E519E67]{eurowig_report.dll} Data.SqlExpr.TCustomSQLDataSet.OpenCursor
[0E3FDE55]{eurowig_report.dll} Data.DB.TDataSet.SetActive
[0E51728E]{eurowig_report.dll} Data.SqlExpr.TSQLConnection.OpenSchemaTable
[0E521ADEKeurowig_report.dll} Data.SqlExpr.TCustomSQLDataSetAddlndexDefs
[0E5232EC]{eurowig_report.dll} Data.SqlExpr.TCustomSQLDataSet.PSGetKeyFields
[0E3FE5B2Heurowig_report.dll} Data.DB.SetKeyFields
[0E3FE873Heurowig_report.dll} Data.DB.TDataSet.CreateFields
[0E519D78Heurowig_report.dll} Data.SqlExpr.TCustomSQLDataSet.InternalOpen
[0E3FDEEEKeurowig_report.dll} Data.DB.TDataSet.DolnternalOpen
[0E3FDF9EHeurowig_report.dll} Data.DB.TDataSet.OpenCursor
[0E519E67]{eurowig_report.dll} Data.SqlExpr.TCustomSQLDataSet.OpenCursor
[0E3FDE55]{eurowig_report.dll} Data.DB.TDataSet.SetActive
[0E3FDC91 Heurowig_report.dll} Data.DB.TDataSet.Open
[0E9B9DC7Keurowig_report.dll} FormDLLTfrmDLLbtnBioLifePrintClick (Line 649, "FormDLLpas")
[0E9C546EKeurowig_report.dll} FormDLLTfrmDLLMYMessage (Line 2470, "FormDLLpas")
[0E2CB62EKeurowig_report.dll} Vcl.Controls.TControl.WndProc
[0E2D01A1]{eurowig_report.dll} Vcl.Controls.TWinControl.WndProc
[0E179E30]{eurowig_report.dll} System.TMonitor.TryEnter
[0E17998C]{eurowig_report.dll} System.TMonitor.Enter
[0E17980C]{eurowig_report.dll} System.TMonitor.CheckOwningThread
[0E179B1AKeurowig_report.dll} System.TMonitor.Exit
[0E179B6B]{eurowig_report.dll} System.TMonitor.Exit
[0E2A15C7Keurowig_report.dll} Vcl.Graphics.FreeMemoryContexts
[0E2CF7C0Heurowig_report.dll} Vcl.Controls.TWinControl.MainWndProc
[0E2CF7D5Heurowig_report.dll} Vcl.Controls.TWinControl.MainWndProc
[0E248760]{eurowig_report.dll} System.Classes.StdWndProc
[0E2D01A1]{eurowig_report.dll} Vcl.Controls.TWinControl.WndProc
[0E3AD599Keurowig_report.dll} Vcl.Forms.TCustomForm.WndProc
[0E2CF7C0Heurowig_report.dll} Vcl.Controls.TWinControl.MainWndProc
[0E248760]{eurowig_report.dll} System.Classes.StdWndProc
[0E3B6F37Keurowig_report.dll} Vcl.Forms.TApplication.ProcessMessage
[0E3B6F7AHeurowig_report.dll} Vcl.Forms.TApplication.HandleMessage
[0E3B2336Keurowig_report.dll} Vcl.Forms.TCustomForm.ShowModal
[0E9C6E2BHeurowig_report.dll} FormDLL.Eurowig_ShowForm (Line 2851, "FormDLLpas")

Windows 8.1 and Windows 10
Oracle 32bit Client
Oracle 64bit Server

Our Approaches so far:
  • Select in SQL Plus or SQL Developer with same User Account / Schema => Worked
  • Tried with SELECT * FROM T_DRUDOC and also specified some Columns testwise (SELECT col1, col2 FROM T_DRUDOC) => Worked not, same error
  • DB-Connection-User owned the DBA Right => Worked not, same error
  • Imported database to our testsystem => Worked
Do you guys have any idea whats happening here?

Re: TDBXMetaDataError Metadata GetIndexes

Posted: Wed 31 Jan 2018 15:58
by MaximG
Unfortunately, the information you provided is not sufficient to reproduce the problem in our environment. Please try to execute the query against the T_DruDoc table without using our driver (for example in the SQL*Plus utility) and let us know about the results. Perhaps, you can provide a remote limited access to the database instance that your customer is working with.

Re: TDBXMetaDataError Metadata GetIndexes

Posted: Thu 01 Feb 2018 07:45
by Eurocg
Thanks for your replay, but:

1. We can't reproduce the problem by our testservers as well. So for sure, my informations aren't enough for you too, to reproduce the problem, we can't do it as well. ;-)
2. The select to this table is working great in sql developer or sql plus with the used database user. In front of this, is a seperate application wich uses a different technologie, wich can read / write to the specified table.
3. I don't think a remote debug session is possible.

Any Ideas what we can test / do now?

Re: TDBXMetaDataError Metadata GetIndexes

Posted: Fri 02 Feb 2018 15:21
by MaximG
Unfortunately, we cannot give you any recommendations, following which it would be possible to fix the error that occurs. For this, we need to investigate the reasons for its occurrence, and without reproducing the issue, this is impossible. Test the behavior of your application in another environment using the same

Re: TDBXMetaDataError Metadata GetIndexes

Posted: Wed 02 May 2018 06:11
by Eurocg
Hello Guys,

we could finally find the problem. It occurs when a "" is appended to the TNSNAMES connection name. The TNS-Names entry at our Customer looks like the following:

Code: Select all

eurowig[b][/b] = 
   (DESCRIPTION = (SDU=32767) 
      (ADDRESS_LIST = 
             (ADDRESS = (PROTOCOL = TCP) (HOST = = 1521)) 
      (CONNECT_DATA = 
         (SERVICE_NAME = eurowiC) 
If our customer removes the of the TNS Names Entry, all seems to work great. An very old Version of the dbexpoda40.dll ( from 2011-09-16) doesn't have any problems with this syntax. But when we upgrade our program and the correspoding dbexpoda40.dll ( from 2017-04-27), we get the already named problem. Please test this at your labs and give us feedback.

Our customer cannot remove this domain-syntax cause he has more than 20 tns entries and multiple domains, so this issue has to be fixed.

Thanks in advance,

Re: TDBXMetaDataError Metadata GetIndexes

Posted: Sat 05 May 2018 06:30
by MaximG
Thank you for providing the information. TNSNAMES.ORA is a configuration file for SQL*Net. It's Oracle client that exclusively processes the addresses indicated in it and we cannot affect this behavior. You can test the ability to connect to the database using the provided alias "" without using our driver with any convenient tool, for example Oracle SQL*Plus or Oracle SQLDeveloper.