package net.sourceforge.phpdt.sql.sql;
-import java.util.Vector;
-
-import net.sourceforge.phpdt.sql.adapters.AdapterFactory;
-import net.sourceforge.phpdt.sql.adapters.DatabaseAdapter;
-import net.sourceforge.phpdt.sql.adapters.DatabaseInfo;
-import net.sourceforge.phpdt.sql.adapters.FeatureNotSupported;
-import net.sourceforge.phpdt.sql.adapters.GenericAdapter;
-import net.sourceforge.phpdt.sql.adapters.NoSuchAdapterException;
import net.sourceforge.phpdt.sql.bookmarks.Bookmark;
-import net.sourceforge.phpdt.sql.view.bookmark.BookmarkNode;
-import net.sourceforge.phpdt.sql.view.bookmark.MetaDataNode;
-import net.sourceforge.phpdt.sql.view.bookmark.SequenceNode;
-import net.sourceforge.phpdt.sql.view.bookmark.TableNode;
-import net.sourceforge.phpdt.sql.view.bookmark.ViewNode;
public class SQLHelper {
- MultiSQLServer server = MultiSQLServer.getInstance();
- public Vector getTableList(BookmarkNode current) throws NoSuchAdapterException, FeatureNotSupported {
- DatabaseAdapter adapter = AdapterFactory.getInstance().getAdapter(current.getType());
- Vector children = new Vector();
- DatabaseInfo info = DatabaseInfo.create(current);
- if (adapter instanceof GenericAdapter) {
- Vector tables = server.listTables(info.getSchema(), "TABLE");
- for (int i = 0; i < tables.size(); i++) {
- String tableName = (String) tables.elementAt(i);
- TableNode node = new TableNode(current, tableName);
- children.addElement(node);
- }
- } else {
- SQLResults results = server.execute(adapter.getShowTableQuery(info));
- String filter = adapter.getTableListFilter();
- int size = results.getRowCount();
- System.out.println("Found " + size + " tables");
- for (int i = 1; i <= size; i++) {
- String tableName = results.getElement(1, i).toString();
- if (filter == null || filter.equals("") || tableName.indexOf(filter) < 0) {
- TableNode node = new TableNode(current, tableName);
- children.addElement(node);
- }
- }
- }
- return children;
- }
- public int getSize(String query) {
- SQLResults results = server.execute("SELECT COUNT(*) FROM " + query);
- return Integer.parseInt(results.getElement(1, 1).toString());
- }
- public Vector getViewList(BookmarkNode current)
- throws NoSuchAdapterException, FeatureNotSupported {
- DatabaseAdapter adapter =
- AdapterFactory.getInstance().getAdapter(current.getType());
- Vector children = new Vector();
- DatabaseInfo info = DatabaseInfo.create(current);
- if (adapter instanceof GenericAdapter) {
- Vector views = server.listTables(info.getSchema(), "VIEW");
- for (int i = 0; i < views.size(); i++) {
- String viewName = (String) views.elementAt(i);
- ViewNode node = new ViewNode(current, viewName);
- children.addElement(node);
- }
- } else {
- SQLResults results =
- server.execute(
- adapter.getShowViewQuery(info));
- String filter = adapter.getTableListFilter();
- int size = results.getRowCount();
- for (int i = 1; i <= size; i++) {
- String viewName = results.getElement(1, i).toString();
- if (filter == null
- || filter.equals("")
- || viewName.indexOf(filter) < 0) {
- ViewNode node = new ViewNode(current, viewName);
- children.addElement(node);
- }
- }
- }
- return children;
+
+ public static int getSize(Bookmark current, String tableName) {
+ SQLResults results = MultiSQLServer.getInstance().execute(
+ current.getConnection(), "SELECT COUNT(*) FROM " + tableName); //$NON-NLS-1$
+ return Integer.parseInt(results.getElement(1, 1).toString());
+ }
+ public static SQLResults getResults(Bookmark current, String query, int start, int end, int maxLength, String encoding) {
+ return MultiSQLServer.getInstance().execute(current.getConnection(),
+ query, start, end, maxLength, encoding);
+ }
+ public static String getFullTableName(Bookmark current, String table) {
+ String schema = current.getSchema();
+ if (schema == null) return table;
+ if (schema.equals("")) return table; //$NON-NLS-1$
+ return schema + "." + table; //$NON-NLS-1$
+ }
+
+ /**
+ * True if the type is Real (numeric and with decimal part) according to java.sql.Types
+ * @param type
+ * @return
+ */
+ public static boolean isReal(int type) {
+ return (type == java.sql.Types.DECIMAL || type == java.sql.Types.DOUBLE || type ==java.sql.Types.FLOAT ||
+ type == java.sql.Types.NUMERIC || type == java.sql.Types.REAL );
}
- public Vector getSequenceList(BookmarkNode current) throws NoSuchAdapterException, FeatureNotSupported {
- DatabaseAdapter adapter = AdapterFactory.getInstance().getAdapter(current.getType());
- MultiSQLServer server = MultiSQLServer.getInstance();
- Vector children = new Vector();
- if (!(adapter instanceof GenericAdapter)) {
- SQLResults results = server.execute(adapter.getShowSequenceQuery(DatabaseInfo.create(current)));
- String filter = adapter.getTableListFilter();
- int size = results.getRowCount();
- for (int i = 1; i <= size; i++) {
- String seqName = results.getElement(1, i).toString();
- if (filter == null || filter.equals("") || seqName.indexOf(filter) < 0) {
- SequenceNode node = new SequenceNode(current, seqName);
- children.addElement(node);
- }
- }
- }
- return children;
- }
- public Vector getMetaData(TableNode parent, String entity) {
- Vector columns = new Vector();
- String query = "SELECT * FROM " + entity;
- SQLResults results = server.execute(query);
- for (int i = 1; i <= results.getColumnCount(); i++) {
- String name = results.getColumnName(i);
- String type = results.getColumnType(i);
- MetaDataNode node = new MetaDataNode(parent, name, type);
- columns.addElement(node);
- }
- return columns;
- }
- public Vector getMetaData(ViewNode parent, String entity) {
- Vector columns = new Vector();
- String query = "SELECT * FROM " + entity;
- SQLResults results = server.execute(query);
- for (int i = 1; i <= results.getColumnCount(); i++) {
- String name = results.getColumnName(i);
- String type = results.getColumnType(i);
- MetaDataNode node = new MetaDataNode(parent, name, type);
- columns.addElement(node);
- }
- return columns;
- }
- public SQLResults getResults(String query, int start, int end) {
- return server.execute(query, start, end);
- }
- public SQLResults getResults(String query, int start, int end, int maxLength, String encoding) {
- return server.execute(query, start, end, maxLength, encoding);
- }
- public static String getFullTableName(Bookmark current, String table) {
- String schema = current.getSchema();
- if (schema == null || schema.equals("")) {
- return table;
- }
- return schema + "." + table;
- }
+
+ /**
+ * True if the type is Numeric according to java.sql.Types
+ * @param type
+ * @return
+ */
+ public static boolean isNumeric(int type) {
+ return (type == java.sql.Types.DECIMAL || type == java.sql.Types.DOUBLE || type ==java.sql.Types.FLOAT ||
+ type == java.sql.Types.NUMERIC || type == java.sql.Types.REAL || type == java.sql.Types.BIGINT ||
+ type == java.sql.Types.TINYINT || type == java.sql.Types.SMALLINT || type == java.sql.Types.INTEGER );
+ }
+ /**
+ * True if the type is textual according to java.sql.Types
+ * @param type
+ * @return
+ */
+ public static boolean isText(int type) {
+ return (type == java.sql.Types.CLOB || type == java.sql.Types.VARBINARY || type ==java.sql.Types.VARCHAR );
+ }
+
}