mysql - BIRT - org.eclipse.birt.data.engine.odaconsumer.OdaDataException: Cannot get the result set metadata -
in birt, when try fetch records localhost, working fine. when try work remote connection getting error specified below:
error :
org.eclipse.birt.data.engine.odaconsumer.odadataexception: cannot result set metadata. org.eclipse.birt.report.data.oda.jdbc.jdbcexception: sql statement not return resultset object. sql error #1:table 'test.tblusers' doesn't exist ... 63 more caused by: com.mysql.jdbc.exceptions.mysqlsyntaxerrorexception: table 'testbms.tblusers' doesn't exist @ com.mysql.jdbc.sqlerror.createsqlexception(sqlerror.java:936) @ com.mysql.jdbc.mysqlio.checkerrorpacket(mysqlio.java:2985)
note:
tablenames automatically changing capital letters, because of it. because client server linux , acting case sensitive. displays column names not records. click on finish, error specified in below images.
reference image:
as can see in above image, has populated table columns in second row
is special configurations need done remote connection or doing wrong?
as stated, case of case-sensitivity:
http://dev.mysql.com/doc/refman/5.0/en/identifier-case-sensitivity.html
although database , table names not case sensitive on platforms, should not refer given database or table using different cases within same statement. following statement not work because refers table both my_table , my_table:
mysql> select * my_table my_table.col=1;
if development box isn't case sensitive when change case of tablename match on production you'll still able test. there might way in mysql using system tables. (see following query example of querying see if table exists.):
select count(*) information_schema.tables table_schema = <schema-or-db-name> , table_name = <table-or-view-name>
but more realistically, target database should passed report through variable can check in scripting of dataset. set "this.query" value equal appropriate query based on variable's value.
e.g.:
if ( params["source_db"].value == "server=myproductionaddress;database=myproductiondb;uid=myusername;pwd=mypassword;" ) { this.query = "select .... prodtablename"; } else { this.query = "select .... devtablename"; }
Comments
Post a Comment