0

我正在尝试创建一个简单的插件,我可以在其中粘贴来自日志的 sql 查询,并让它在表中显示列名和插入的值。除了日期和时间,我已经让它工作了,因为我们的 DB2 数据库使用特殊值,例如{d: '2014-07-03'}而不是'2014-07-03'.

我如何弄清楚我需要传递什么值SQLQueryParserManagerProvider.getInstance().getParserManager(dbProduct, dbVersion);

获得可以处理这些值的正确解析器?

4

1 回答 1

0

在 Database Development 视图中建立一个连接(我叫 mine QA),双击打开一个连接,然后运行:

IConnectionProfile profile = ProfileManager.getInstance().getProfileByName("QA");
Database db = getDatabase(profile);
if (db != null) {
    System.out.println("DB Vendor: " + db.getVendor());
    System.out.println("DB Version: " + db.getVersion());
}

getDatabase方法取自本页末尾:

private Database getDatabase(IConnectionProfile profile) {
    IManagedConnection managedConnection = ((IConnectionProfile) profile)
            .getManagedConnection("org.eclipse.datatools.connectivity.sqm.core.connection.ConnectionInfo");
    if (managedConnection != null) {
        try {
            ConnectionInfo connectionInfo = (ConnectionInfo) managedConnection.getConnection().getRawConnection();
            if (connectionInfo != null) {
                Database database = connectionInfo.getSharedDatabase();
                return database;
            }
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }
    return null;
}
于 2014-07-08T16:40:34.197 回答