Skip to main content

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.

Jump to: navigation, search

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

Back to DTP Main Page


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();
     }
  }

Back to the top