Page 1 of 1

Problem beim Fetching der MetaDaten aus MySQL (>Version 5.1)

PostPosted: Wed Mar 10, 2010 5:52 am
by tak
Ab Version 5.1 in MySQL gab es eine Änderung im JDBC-Driver, in der bei einer Abfrage über
Code: Select all
((ResultSetMetaData)object).getColumnName ()
bei Columns mit gesetztem Alias der OriginalName der Column zurückgeliefert wird.

Beispielsweise wird bei
Code: Select all
SELECT name AS customer_name FROM CUSTOMERS;
der ColumnName “name” und nicht mehr “customer_name“ zurückgeliefert.

Problematisch wird dieses Verhalten, sollten mehrere Columns mit gleichem Namen aber unterschiedlichen Aliases in einer Query existieren.
Somit passiert es, dass eine „falscher“ bzw. eine ColumnName mehrfach in den gelieferten MetaDaten der DBAccess vorkommt.
Dies macht es wiederum unmöglich über
Code: Select all
((RemoteDataBook)object).getRowDefinition().getColumnDefinition(„COLUMNNAME“)
auf die ColumnDefinition zuzugreifen.

(Frage: Exception Handling für mehrfach vorkommende ColumnNames in den MetaDaten wurde vorgesehen jedoch nicht „fertig“ entwickelt (DBAccess Line: 2086)?)

Wie im BugReport auf der MySQL-Seite (http://bugs.mysql.com/bug.php?id=43684) beschrieben ist, kann für das Verhalten vor Version 5.1 die Option useOldAliasMetadataBehavior=true im JDBC-ConnectionString verwendet werden.

LG, Tommy

Re: Problem beim Fetching der MetaDaten aus MySQL (>Version 5.1)

PostPosted: Wed Mar 10, 2010 11:13 am
by Support@SIB
Welche JVx Version wird verwendet, sieht nach 0.7 BETA-3 aus und nicht 0.7 release!

Welche Version des JDBC Treibers wird aktuell verwendet?
Funktioniert ein älterer JDBC Treiber, der diese Option noch nicht implementiert hat?

Das Problem mit der Spalten Behandlung wird behandelt unter Support System.

Die Property können Sie einerseits in der Connection URL, via config.xml, setzen oder andererseits im Source-Coude durch:

dbaccess.setDBProperty("useOldAliasMetadataBehavior", "true");

Details diesbezüglich Support System.

Re: Problem beim Fetching der MetaDaten aus MySQL (>Version 5.1)

PostPosted: Wed Mar 10, 2010 12:10 pm
by tak
Aktuell werden für die Enwicklung folgende Librarys verwendet:

JVx: 0.7 Release
JDBC-Driver: mysql-connector-java-5.1.10-bin.jar

Habe das Verhalten gerade mit der Version mysql-connector-java-5.0.6-bin.jar des JDBC-Driver gestetet, wobei mit dieser Version das Verhalten nicht auftritt.

LG, Tommy