Page 1 of 1

Dynamic Retrieve Columns

Posted: Mon May 11, 2015 7:25 pm
by rafaelwithoeft
Hello, i want to "refresh" dynamicaly retrieved columns of data source sql. How i do it?
Like i click in retrieve columns in the designer, but i need it on java... Sample:

Code: Select all

report.getDictionary().getDataSource("xyz").retrieveColumns();
Image

Re: Dynamic Retrieve Columns

Posted: Tue May 12, 2015 8:10 am
by Vadim
Hello.
You can use next example for MySqlDatabase as first DB:

Code: Select all

StiJDBCDatabase jdb = (StiJDBCDatabase) report.getDictionary().getDatabases().get(0);
        StiJDBCParameters param = new StiMySqlAdapter(jdb.getConnectionString()).getJdbcParameters();
        Class.forName(param.getDriverName());
        Properties info = new Properties();
        info.setProperty("user", param.getUser());
        info.setProperty("password", param.getPassword());
        info.putAll(param.getOther());
        Connection con = DriverManager.getConnection(param.getConnectionURL(), info);
        StiTableFildsRequest request = StiDataColumnsUtil.getFields(con, "select * from customer");
        List<StiSqlField> fields = request.getColunns();
        for (StiSqlField field : fields) {
            report.getDictionary().getDataSources().get(0).getColumns().add(new StiDataColumn(field.getName(), field.getName(), field.getSystemType()));
        }

Re: Dynamic Retrieve Columns

Posted: Mon Jun 15, 2015 12:47 pm
by rafaelwithoeft
Thank you!

Re: Dynamic Retrieve Columns

Posted: Mon Jun 15, 2015 12:56 pm
by Alex K.
Hello,

We are always glad to help you!
Let us know if you need any additional help.

Thank you.