Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "DTP FAQ"
Line 35: | Line 35: | ||
return null; | return null; | ||
} | } | ||
+ | |||
+ | '''Q: How do I get at the database model from my connected connection profile?''' | ||
+ | |||
+ | '''A: This is a little more difficult, but along the same lines of getting a JDBC connection. We just have a different connection type under the covers that lumps a reference to the Database model object with some other bits and pieces about the connection called "ConnectionInfo". | ||
+ | |||
+ | 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(); | ||
+ | // do something with the database reference… this is an EMF object, so you can query for any underlying properties of the object such as | ||
+ | // child Catalogs, Schemas, Tables, etc... Just work your way down the hierarchy | ||
+ | } | ||
+ | } catch (Exception e) { | ||
+ | e.printStackTrace(); | ||
+ | } | ||
+ | } | ||
[[Category:Data_Tools_Platform]] | [[Category:Data_Tools_Platform]] |
Revision as of 12:49, 1 October 2009
This page should be a repository for all those "Frequently Asked Questions" or FAQs posted on the DTP newsgroups, mailing lists, and whatnot.
Connectivity
Q: How do I programmatically access an existing connection profile?
A: This is pretty simple:
IConnectionProfile profile = ProfileManager.getInstance().getProfileByName("myprofile");
Q: How do I connect to an existing connection profile programmatically?
A: Again, pretty simple:
IConnectionProfile profile = ProfileManager.getInstance().getProfileByName("myprofile"); IStatus status = profile.connect(); if (status.equals(IStatus.OK)) { // success } else { // failure :( if (status.getException() != null) { status.getException().printStackTrace(); } }
Q: How do I get the raw JDBC Connection from my connected connection profile?
public java.sql.Connection getJavaConnectionForProfile (IConnectionProfile profile) { IConnection connection = ProfileConnectionManager.getProfileConnectionManagerInstance().getConnection(profile,"java.sql.Connection"); if (connection != null) { return (java.sql.Connection) connection.getRawConnection(); } return null; }
Q: How do I get at the database model from my connected connection profile?
A: This is a little more difficult, but along the same lines of getting a JDBC connection. We just have a different connection type under the covers that lumps a reference to the Database model object with some other bits and pieces about the connection called "ConnectionInfo".
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(); // do something with the database reference… this is an EMF object, so you can query for any underlying properties of the object such as // child Catalogs, Schemas, Tables, etc... Just work your way down the hierarchy } } catch (Exception e) { e.printStackTrace(); } }