#i104329# introduce a dedicated PrimaryKeySupport property at DataSource.Settings, which determines whether a data source should (be assumed to) support primary keys. Valid values are TRUE (=> supports), FALSE (=> doesn't support) and VOID (=> use the old heuristics, i.e. consult XDatabaseMetaData.supportsCoreSQLGrammar)
This commit is contained in:
@@ -32,9 +32,7 @@ package com.sun.star.wizards.db;
|
|||||||
import com.sun.star.awt.XWindow;
|
import com.sun.star.awt.XWindow;
|
||||||
import com.sun.star.lang.XInitialization;
|
import com.sun.star.lang.XInitialization;
|
||||||
import com.sun.star.ui.dialogs.XExecutableDialog;
|
import com.sun.star.ui.dialogs.XExecutableDialog;
|
||||||
import java.util.*;
|
|
||||||
|
|
||||||
// import com.sun.star.io.IOException;
|
|
||||||
import com.sun.star.lang.IllegalArgumentException;
|
import com.sun.star.lang.IllegalArgumentException;
|
||||||
import com.sun.star.lang.WrappedTargetException;
|
import com.sun.star.lang.WrappedTargetException;
|
||||||
import com.sun.star.lang.XMultiServiceFactory;
|
import com.sun.star.lang.XMultiServiceFactory;
|
||||||
@@ -48,7 +46,6 @@ import com.sun.star.container.XHierarchicalNameAccess;
|
|||||||
import com.sun.star.container.XHierarchicalNameContainer;
|
import com.sun.star.container.XHierarchicalNameContainer;
|
||||||
import com.sun.star.container.XNameAccess;
|
import com.sun.star.container.XNameAccess;
|
||||||
import com.sun.star.container.XNameContainer;
|
import com.sun.star.container.XNameContainer;
|
||||||
// import com.sun.star.container.XNamed;
|
|
||||||
import com.sun.star.frame.XComponentLoader;
|
import com.sun.star.frame.XComponentLoader;
|
||||||
import com.sun.star.frame.XModel;
|
import com.sun.star.frame.XModel;
|
||||||
import com.sun.star.frame.XStorable;
|
import com.sun.star.frame.XStorable;
|
||||||
@@ -57,7 +54,6 @@ import com.sun.star.sdbc.DataType;
|
|||||||
import com.sun.star.sdb.XOfficeDatabaseDocument;
|
import com.sun.star.sdb.XOfficeDatabaseDocument;
|
||||||
import com.sun.star.sdb.XDocumentDataSource;
|
import com.sun.star.sdb.XDocumentDataSource;
|
||||||
import com.sun.star.sdb.tools.XConnectionTools;
|
import com.sun.star.sdb.tools.XConnectionTools;
|
||||||
// import com.sun.star.sdbcx.XAppend;
|
|
||||||
import com.sun.star.sdbcx.XColumnsSupplier;
|
import com.sun.star.sdbcx.XColumnsSupplier;
|
||||||
|
|
||||||
import com.sun.star.ucb.XSimpleFileAccess;
|
import com.sun.star.ucb.XSimpleFileAccess;
|
||||||
@@ -67,14 +63,11 @@ import com.sun.star.uno.AnyConverter;
|
|||||||
import com.sun.star.util.XCloseable;
|
import com.sun.star.util.XCloseable;
|
||||||
import com.sun.star.util.XNumberFormatsSupplier;
|
import com.sun.star.util.XNumberFormatsSupplier;
|
||||||
|
|
||||||
import com.sun.star.wizards.common.Properties;
|
|
||||||
import com.sun.star.wizards.common.*;
|
import com.sun.star.wizards.common.*;
|
||||||
// import com.sun.star.wizards.ui.UnoDialog;
|
|
||||||
import com.sun.star.task.XInteractionHandler;
|
import com.sun.star.task.XInteractionHandler;
|
||||||
import com.sun.star.sdb.XFormDocumentsSupplier;
|
import com.sun.star.sdb.XFormDocumentsSupplier;
|
||||||
import com.sun.star.sdb.XQueryDefinitionsSupplier;
|
import com.sun.star.sdb.XQueryDefinitionsSupplier;
|
||||||
import com.sun.star.sdb.XReportDocumentsSupplier;
|
import com.sun.star.sdb.XReportDocumentsSupplier;
|
||||||
// import com.sun.star.sdbc.ColumnValue;
|
|
||||||
import com.sun.star.sdbc.SQLException;
|
import com.sun.star.sdbc.SQLException;
|
||||||
import com.sun.star.sdbc.XDatabaseMetaData;
|
import com.sun.star.sdbc.XDatabaseMetaData;
|
||||||
import com.sun.star.sdbc.XDataSource;
|
import com.sun.star.sdbc.XDataSource;
|
||||||
@@ -82,17 +75,22 @@ import com.sun.star.sdbc.XResultSet;
|
|||||||
import com.sun.star.sdbc.XRow;
|
import com.sun.star.sdbc.XRow;
|
||||||
import com.sun.star.sdb.XCompletedConnection;
|
import com.sun.star.sdb.XCompletedConnection;
|
||||||
import com.sun.star.lang.Locale;
|
import com.sun.star.lang.Locale;
|
||||||
// import com.sun.star.util.XFlushable;
|
|
||||||
import com.sun.star.lang.XSingleServiceFactory;
|
import com.sun.star.lang.XSingleServiceFactory;
|
||||||
import com.sun.star.sdb.XQueriesSupplier;
|
import com.sun.star.sdb.XQueriesSupplier;
|
||||||
|
import com.sun.star.sdbc.XConnection;
|
||||||
import com.sun.star.sdbcx.XTablesSupplier;
|
import com.sun.star.sdbcx.XTablesSupplier;
|
||||||
|
import com.sun.star.uno.Any;
|
||||||
|
import java.util.Vector;
|
||||||
|
import java.util.logging.Level;
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
public class DBMetaData
|
public class DBMetaData
|
||||||
{
|
{
|
||||||
|
|
||||||
private XNameAccess xQueryNames;
|
private XNameAccess xQueryNames;
|
||||||
public XDatabaseMetaData xDBMetaData;
|
public XDatabaseMetaData xDBMetaData;
|
||||||
private XDataSource xDataSource;
|
private XDataSource m_dataSource;
|
||||||
|
private XPropertySet m_dataSourceSettings;
|
||||||
private XOfficeDatabaseDocument xModel;
|
private XOfficeDatabaseDocument xModel;
|
||||||
private XPropertySet xDataSourcePropertySet;
|
private XPropertySet xDataSourcePropertySet;
|
||||||
public String[] DataSourceNames;
|
public String[] DataSourceNames;
|
||||||
@@ -150,13 +148,10 @@ public class DBMetaData
|
|||||||
private int iMaxColumnNameLength = -1;
|
private int iMaxColumnNameLength = -1;
|
||||||
private int iMaxTableNameLength = -1;
|
private int iMaxTableNameLength = -1;
|
||||||
private boolean bPasswordIsRequired;
|
private boolean bPasswordIsRequired;
|
||||||
// private boolean bFormatKeysareset = false;
|
|
||||||
private final static int NOLIMIT = 9999999;
|
private final static int NOLIMIT = 9999999;
|
||||||
protected final static int RID_DB_COMMON = 1000;
|
protected final static int RID_DB_COMMON = 1000;
|
||||||
private final static int INVALID = 9999999;
|
private final static int INVALID = 9999999;
|
||||||
public TypeInspector oTypeInspector;
|
public TypeInspector oTypeInspector;
|
||||||
private PropertyValue[] aInfoPropertyValues = null;
|
|
||||||
private boolean bisSQL92CheckEnabled = false;
|
|
||||||
private NumberFormatter oNumberFormatter = null;
|
private NumberFormatter oNumberFormatter = null;
|
||||||
private long lDateCorrection = INVALID;
|
private long lDateCorrection = INVALID;
|
||||||
private boolean bdisposeConnection = false;
|
private boolean bdisposeConnection = false;
|
||||||
@@ -219,9 +214,9 @@ public class DBMetaData
|
|||||||
{
|
{
|
||||||
this.xMSF = xMSF;
|
this.xMSF = xMSF;
|
||||||
xDatabaseContext = (XInterface) xMSF.createInstance("com.sun.star.sdb.DatabaseContext");
|
xDatabaseContext = (XInterface) xMSF.createInstance("com.sun.star.sdb.DatabaseContext");
|
||||||
xNameAccess = (XNameAccess) UnoRuntime.queryInterface(XNameAccess.class, xDatabaseContext);
|
xNameAccess = UnoRuntime.queryInterface(XNameAccess.class, xDatabaseContext);
|
||||||
XInterface xInteractionHandler = (XInterface) xMSF.createInstance("com.sun.star.sdb.InteractionHandler");
|
XInterface xInteractionHandler = (XInterface) xMSF.createInstance("com.sun.star.sdb.InteractionHandler");
|
||||||
oInteractionHandler = (XInteractionHandler) UnoRuntime.queryInterface(XInteractionHandler.class, xInteractionHandler);
|
oInteractionHandler = UnoRuntime.queryInterface(XInteractionHandler.class, xInteractionHandler);
|
||||||
DataSourceNames = xNameAccess.getElementNames();
|
DataSourceNames = xNameAccess.getElementNames();
|
||||||
}
|
}
|
||||||
catch (Exception exception)
|
catch (Exception exception)
|
||||||
@@ -330,10 +325,10 @@ public class DBMetaData
|
|||||||
{
|
{
|
||||||
oCommand = getQueryNamesAsNameAccess().getByName(Name);
|
oCommand = getQueryNamesAsNameAccess().getByName(Name);
|
||||||
}
|
}
|
||||||
XColumnsSupplier xCommandCols = (XColumnsSupplier) UnoRuntime.queryInterface(XColumnsSupplier.class, oCommand);
|
XColumnsSupplier xCommandCols = UnoRuntime.queryInterface(XColumnsSupplier.class, oCommand);
|
||||||
xPropertySet = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, oCommand);
|
xPropertySet = UnoRuntime.queryInterface(XPropertySet.class, oCommand);
|
||||||
// TODO: Performance leak getColumns() take very long.
|
// TODO: Performance leak getColumns() take very long.
|
||||||
xColumns = (XNameAccess) UnoRuntime.queryInterface(XNameAccess.class, xCommandCols.getColumns());
|
xColumns = UnoRuntime.queryInterface(XNameAccess.class, xCommandCols.getColumns());
|
||||||
}
|
}
|
||||||
catch (Exception exception)
|
catch (Exception exception)
|
||||||
{
|
{
|
||||||
@@ -379,13 +374,13 @@ public class DBMetaData
|
|||||||
public XNameAccess getQueryNamesAsNameAccess()
|
public XNameAccess getQueryNamesAsNameAccess()
|
||||||
{
|
{
|
||||||
XQueriesSupplier xDBQueries = (XQueriesSupplier) UnoRuntime.queryInterface(XQueriesSupplier.class, DBConnection);
|
XQueriesSupplier xDBQueries = (XQueriesSupplier) UnoRuntime.queryInterface(XQueriesSupplier.class, DBConnection);
|
||||||
xQueryNames = (XNameAccess) xDBQueries.getQueries();
|
xQueryNames = xDBQueries.getQueries();
|
||||||
return xQueryNames;
|
return xQueryNames;
|
||||||
}
|
}
|
||||||
|
|
||||||
public XNameAccess getTableNamesAsNameAccess()
|
public XNameAccess getTableNamesAsNameAccess()
|
||||||
{
|
{
|
||||||
XTablesSupplier xDBTables = (XTablesSupplier) UnoRuntime.queryInterface(XTablesSupplier.class, DBConnection);
|
XTablesSupplier xDBTables = UnoRuntime.queryInterface(XTablesSupplier.class, DBConnection);
|
||||||
XNameAccess xTableNames = xDBTables.getTables();
|
XNameAccess xTableNames = xDBTables.getTables();
|
||||||
return xTableNames;
|
return xTableNames;
|
||||||
}
|
}
|
||||||
@@ -412,7 +407,7 @@ public class DBMetaData
|
|||||||
return TableNames;
|
return TableNames;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
TableNames = (String[]) getTableNamesAsNameAccess().getElementNames();
|
TableNames = getTableNamesAsNameAccess().getElementNames();
|
||||||
return TableNames;
|
return TableNames;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -458,7 +453,7 @@ public class DBMetaData
|
|||||||
int itablecount = xDBMetaData.getMaxTablesInSelect();
|
int itablecount = xDBMetaData.getMaxTablesInSelect();
|
||||||
if (itablecount == 0)
|
if (itablecount == 0)
|
||||||
{
|
{
|
||||||
return this.NOLIMIT;
|
return DBMetaData.NOLIMIT;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -487,7 +482,7 @@ public class DBMetaData
|
|||||||
iMaxColumnsInSelect = xDBMetaData.getMaxColumnsInSelect();
|
iMaxColumnsInSelect = xDBMetaData.getMaxColumnsInSelect();
|
||||||
if (iMaxColumnsInSelect == 0)
|
if (iMaxColumnsInSelect == 0)
|
||||||
{
|
{
|
||||||
iMaxColumnsInSelect = this.NOLIMIT;
|
iMaxColumnsInSelect = DBMetaData.NOLIMIT;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -496,7 +491,7 @@ public class DBMetaData
|
|||||||
iMaxColumnsInGroupBy = xDBMetaData.getMaxColumnsInGroupBy();
|
iMaxColumnsInGroupBy = xDBMetaData.getMaxColumnsInGroupBy();
|
||||||
if (iMaxColumnsInGroupBy == 0)
|
if (iMaxColumnsInGroupBy == 0)
|
||||||
{
|
{
|
||||||
iMaxColumnsInGroupBy = this.NOLIMIT;
|
iMaxColumnsInGroupBy = DBMetaData.NOLIMIT;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -505,7 +500,7 @@ public class DBMetaData
|
|||||||
iMaxColumnsInTable = xDBMetaData.getMaxColumnsInTable();
|
iMaxColumnsInTable = xDBMetaData.getMaxColumnsInTable();
|
||||||
if (iMaxColumnsInTable == 0)
|
if (iMaxColumnsInTable == 0)
|
||||||
{
|
{
|
||||||
iMaxColumnsInTable = this.NOLIMIT;
|
iMaxColumnsInTable = DBMetaData.NOLIMIT;
|
||||||
}
|
}
|
||||||
return iMaxColumnsInTable;
|
return iMaxColumnsInTable;
|
||||||
}
|
}
|
||||||
@@ -515,8 +510,7 @@ public class DBMetaData
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
xDBMetaData = DBConnection.getMetaData();
|
xDBMetaData = DBConnection.getMetaData();
|
||||||
XChild xChild = (XChild) UnoRuntime.queryInterface(XChild.class, DBConnection);
|
XChild xChild = UnoRuntime.queryInterface( XChild.class, DBConnection );
|
||||||
Object oDataSource = xChild.getParent();
|
|
||||||
getDataSourceInterfaces();
|
getDataSourceInterfaces();
|
||||||
setMaxColumnsInGroupBy();
|
setMaxColumnsInGroupBy();
|
||||||
setMaxColumnsInSelect();
|
setMaxColumnsInSelect();
|
||||||
@@ -527,24 +521,28 @@ public class DBMetaData
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ensureDataSourceSettings() throws UnknownPropertyException, WrappedTargetException
|
||||||
|
{
|
||||||
|
if ( m_dataSourceSettings != null )
|
||||||
|
return;
|
||||||
|
|
||||||
|
XPropertySet dataSourceProperties = UnoRuntime.queryInterface( XPropertySet.class, getDataSource() );
|
||||||
|
m_dataSourceSettings = UnoRuntime.queryInterface( XPropertySet.class, dataSourceProperties.getPropertyValue( "Settings" ) );
|
||||||
|
}
|
||||||
|
|
||||||
public boolean isSQL92CheckEnabled()
|
public boolean isSQL92CheckEnabled()
|
||||||
{
|
{
|
||||||
|
boolean isSQL92CheckEnabled = false;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (aInfoPropertyValues == null)
|
ensureDataSourceSettings();
|
||||||
{
|
isSQL92CheckEnabled = AnyConverter.toBoolean( m_dataSourceSettings.getPropertyValue( "EnableSQL92Check" ) );
|
||||||
aInfoPropertyValues = (PropertyValue[]) AnyConverter.toArray(this.xDataSourcePropertySet.getPropertyValue("Info"));
|
|
||||||
if (Properties.hasPropertyValue(aInfoPropertyValues, "EnableSQL92Check"))
|
|
||||||
{
|
|
||||||
bisSQL92CheckEnabled = AnyConverter.toBoolean(Properties.getPropertyValue(aInfoPropertyValues, "EnableSQL92Check"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
return bisSQL92CheckEnabled;
|
return isSQL92CheckEnabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String verifyName(String _sname, int _maxlen)
|
public String verifyName(String _sname, int _maxlen)
|
||||||
@@ -562,12 +560,12 @@ public class DBMetaData
|
|||||||
|
|
||||||
public XDataSource getDataSource()
|
public XDataSource getDataSource()
|
||||||
{
|
{
|
||||||
if (xDataSource == null)
|
if (m_dataSource == null)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Object oDataSource = xNameAccess.getByName(DataSourceName);
|
Object oDataSource = xNameAccess.getByName(DataSourceName);
|
||||||
xDataSource = (XDataSource) UnoRuntime.queryInterface(XDataSource.class, oDataSource);
|
m_dataSource = UnoRuntime.queryInterface( XDataSource.class, oDataSource );
|
||||||
}
|
}
|
||||||
catch (com.sun.star.container.NoSuchElementException e)
|
catch (com.sun.star.container.NoSuchElementException e)
|
||||||
{
|
{
|
||||||
@@ -576,7 +574,7 @@ public class DBMetaData
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return xDataSource;
|
return m_dataSource;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setDataSourceByName(String _DataSourceName, boolean bgetInterfaces)
|
private void setDataSourceByName(String _DataSourceName, boolean bgetInterfaces)
|
||||||
@@ -585,7 +583,7 @@ public class DBMetaData
|
|||||||
{
|
{
|
||||||
this.DataSourceName = _DataSourceName;
|
this.DataSourceName = _DataSourceName;
|
||||||
getDataSourceInterfaces();
|
getDataSourceInterfaces();
|
||||||
XDocumentDataSource xDocu = (XDocumentDataSource) UnoRuntime.queryInterface(XDocumentDataSource.class, getDataSource());
|
XDocumentDataSource xDocu = UnoRuntime.queryInterface( XDocumentDataSource.class, getDataSource() );
|
||||||
if (xDocu != null)
|
if (xDocu != null)
|
||||||
{
|
{
|
||||||
xModel = xDocu.getDatabaseDocument();
|
xModel = xDocu.getDatabaseDocument();
|
||||||
@@ -599,8 +597,8 @@ public class DBMetaData
|
|||||||
|
|
||||||
public void getDataSourceInterfaces() throws Exception
|
public void getDataSourceInterfaces() throws Exception
|
||||||
{
|
{
|
||||||
xCompleted = (XCompletedConnection) UnoRuntime.queryInterface(XCompletedConnection.class, xDataSource);
|
xCompleted = UnoRuntime.queryInterface( XCompletedConnection.class, m_dataSource );
|
||||||
xDataSourcePropertySet = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xDataSource);
|
xDataSourcePropertySet = UnoRuntime.queryInterface( XPropertySet.class, m_dataSource );
|
||||||
bPasswordIsRequired = ((Boolean) xDataSourcePropertySet.getPropertyValue("IsPasswordRequired")).booleanValue();
|
bPasswordIsRequired = ((Boolean) xDataSourcePropertySet.getPropertyValue("IsPasswordRequired")).booleanValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -608,22 +606,21 @@ public class DBMetaData
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
com.sun.star.sdbc.XConnection xConnection = null;
|
XConnection xConnection = null;
|
||||||
if (Properties.hasPropertyValue(curproperties, "ActiveConnection"))
|
if (Properties.hasPropertyValue(curproperties, "ActiveConnection"))
|
||||||
{
|
{
|
||||||
xConnection = (com.sun.star.sdbc.XConnection) AnyConverter.toObject(com.sun.star.sdbc.XConnection.class,
|
xConnection = UnoRuntime.queryInterface( XConnection.class, Properties.getPropertyValue( curproperties, "ActiveConnection" ) );
|
||||||
Properties.getPropertyValue(curproperties, "ActiveConnection"));
|
|
||||||
if (xConnection != null)
|
if (xConnection != null)
|
||||||
{
|
{
|
||||||
com.sun.star.container.XChild child = (com.sun.star.container.XChild) UnoRuntime.queryInterface(com.sun.star.container.XChild.class, xConnection);
|
com.sun.star.container.XChild child = UnoRuntime.queryInterface( com.sun.star.container.XChild.class, xConnection );
|
||||||
|
|
||||||
xDataSource = (XDataSource) UnoRuntime.queryInterface(XDataSource.class, child.getParent());
|
m_dataSource = UnoRuntime.queryInterface( XDataSource.class, child.getParent() );
|
||||||
XDocumentDataSource xDocu = (XDocumentDataSource) UnoRuntime.queryInterface(XDocumentDataSource.class, this.xDataSource);
|
XDocumentDataSource xDocu = UnoRuntime.queryInterface( XDocumentDataSource.class, m_dataSource );
|
||||||
if (xDocu != null)
|
if (xDocu != null)
|
||||||
{
|
{
|
||||||
xModel = xDocu.getDatabaseDocument();
|
xModel = xDocu.getDatabaseDocument();
|
||||||
}
|
}
|
||||||
XPropertySet xPSet = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xDataSource);
|
XPropertySet xPSet = UnoRuntime.queryInterface( XPropertySet.class, m_dataSource );
|
||||||
if (xPSet != null)
|
if (xPSet != null)
|
||||||
{
|
{
|
||||||
DataSourceName = AnyConverter.toString(xPSet.getPropertyValue("Name"));
|
DataSourceName = AnyConverter.toString(xPSet.getPropertyValue("Name"));
|
||||||
@@ -646,13 +643,13 @@ public class DBMetaData
|
|||||||
}
|
}
|
||||||
else if (Properties.hasPropertyValue(curproperties, "DataSource"))
|
else if (Properties.hasPropertyValue(curproperties, "DataSource"))
|
||||||
{
|
{
|
||||||
xDataSource = (XDataSource) UnoRuntime.queryInterface(XDataSource.class, Properties.getPropertyValue(curproperties, "DataSource"));
|
m_dataSource = UnoRuntime.queryInterface( XDataSource.class, Properties.getPropertyValue( curproperties, "DataSource" ) );
|
||||||
XDocumentDataSource xDocu = (XDocumentDataSource) UnoRuntime.queryInterface(XDocumentDataSource.class, this.xDataSource);
|
XDocumentDataSource xDocu = UnoRuntime.queryInterface( XDocumentDataSource.class, this.m_dataSource );
|
||||||
if (xDocu != null)
|
if (xDocu != null)
|
||||||
{
|
{
|
||||||
xModel = xDocu.getDatabaseDocument();
|
xModel = xDocu.getDatabaseDocument();
|
||||||
}
|
}
|
||||||
return getConnection(xDataSource);
|
return getConnection(m_dataSource);
|
||||||
}
|
}
|
||||||
if (Properties.hasPropertyValue(curproperties, "DatabaseLocation"))
|
if (Properties.hasPropertyValue(curproperties, "DatabaseLocation"))
|
||||||
{
|
{
|
||||||
@@ -684,7 +681,7 @@ public class DBMetaData
|
|||||||
private boolean getConnection(String _DataSourceName)
|
private boolean getConnection(String _DataSourceName)
|
||||||
{
|
{
|
||||||
setDataSourceByName(_DataSourceName, true);
|
setDataSourceByName(_DataSourceName, true);
|
||||||
return getConnection(xDataSource);
|
return getConnection(m_dataSource);
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean getConnection(com.sun.star.sdbc.XConnection _DBConnection)
|
private boolean getConnection(com.sun.star.sdbc.XConnection _DBConnection)
|
||||||
@@ -692,7 +689,7 @@ public class DBMetaData
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
this.DBConnection = _DBConnection;
|
this.DBConnection = _DBConnection;
|
||||||
this.ConnectionTools = (XConnectionTools) UnoRuntime.queryInterface(XConnectionTools.class, this.DBConnection);
|
this.ConnectionTools = UnoRuntime.queryInterface( XConnectionTools.class, this.DBConnection );
|
||||||
getDataSourceObjects();
|
getDataSourceObjects();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -703,7 +700,7 @@ public class DBMetaData
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean getConnection(XDataSource xDataSource)
|
private boolean getConnection(XDataSource _dataSource)
|
||||||
{
|
{
|
||||||
Resource oResource = new Resource(xMSF, "Database", "dbw");
|
Resource oResource = new Resource(xMSF, "Database", "dbw");
|
||||||
try
|
try
|
||||||
@@ -717,20 +714,19 @@ public class DBMetaData
|
|||||||
getDataSourceInterfaces();
|
getDataSourceInterfaces();
|
||||||
if (bPasswordIsRequired == false)
|
if (bPasswordIsRequired == false)
|
||||||
{
|
{
|
||||||
DBConnection = xDataSource.getConnection("", "");
|
DBConnection = _dataSource.getConnection("", "");
|
||||||
bgetConnection = true;
|
bgetConnection = true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
XInterface xInteractionHandler = (XInterface) xMSF.createInstance("com.sun.star.sdb.InteractionHandler");
|
XInteractionHandler xInteractionHandler = UnoRuntime.queryInterface( XInteractionHandler.class, xMSF.createInstance("com.sun.star.sdb.InteractionHandler") );
|
||||||
XInteractionHandler oInteractionHandler2 = (XInteractionHandler) UnoRuntime.queryInterface(XInteractionHandler.class, xInteractionHandler);
|
|
||||||
boolean bExitLoop = true;
|
boolean bExitLoop = true;
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
XCompletedConnection xCompleted2 = (XCompletedConnection) UnoRuntime.queryInterface(XCompletedConnection.class, xDataSource);
|
XCompletedConnection xCompleted2 = UnoRuntime.queryInterface( XCompletedConnection.class, _dataSource );
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
DBConnection = xCompleted2.connectWithCompletion(oInteractionHandler2);
|
DBConnection = xCompleted2.connectWithCompletion( xInteractionHandler );
|
||||||
bgetConnection = DBConnection != null;
|
bgetConnection = DBConnection != null;
|
||||||
if (bgetConnection == false)
|
if (bgetConnection == false)
|
||||||
{
|
{
|
||||||
@@ -755,8 +751,8 @@ public class DBMetaData
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
xConnectionComponent = (XComponent) UnoRuntime.queryInterface(XComponent.class, DBConnection);
|
xConnectionComponent = UnoRuntime.queryInterface( XComponent.class, DBConnection );
|
||||||
ConnectionTools = (XConnectionTools) UnoRuntime.queryInterface(XConnectionTools.class, DBConnection);
|
ConnectionTools = UnoRuntime.queryInterface( XConnectionTools.class, DBConnection );
|
||||||
getDataSourceObjects();
|
getDataSourceObjects();
|
||||||
}
|
}
|
||||||
return bgetConnection;
|
return bgetConnection;
|
||||||
@@ -804,6 +800,25 @@ public class DBMetaData
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean supportsPrimaryKeys()
|
||||||
|
{
|
||||||
|
boolean supportsPrimaryKeys = false;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
ensureDataSourceSettings();
|
||||||
|
Any primaryKeySupport = (Any)m_dataSourceSettings.getPropertyValue( "PrimaryKeySupport" );
|
||||||
|
if ( AnyConverter.isVoid( primaryKeySupport ) )
|
||||||
|
supportsPrimaryKeys = supportsCoreSQLGrammar();
|
||||||
|
else
|
||||||
|
supportsPrimaryKeys = AnyConverter.toBoolean( primaryKeySupport );
|
||||||
|
}
|
||||||
|
catch ( Exception ex )
|
||||||
|
{
|
||||||
|
Logger.getLogger( DBMetaData.class.getName() ).log( Level.SEVERE, null, ex );
|
||||||
|
}
|
||||||
|
return supportsPrimaryKeys;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean supportsCoreSQLGrammar()
|
public boolean supportsCoreSQLGrammar()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -831,17 +846,17 @@ public class DBMetaData
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
XQueryDefinitionsSupplier xQueryDefinitionsSuppl = (XQueryDefinitionsSupplier) UnoRuntime.queryInterface(XQueryDefinitionsSupplier.class, xDataSource);
|
XQueryDefinitionsSupplier xQueryDefinitionsSuppl = UnoRuntime.queryInterface( XQueryDefinitionsSupplier.class, m_dataSource );
|
||||||
XNameAccess xQueryDefs = xQueryDefinitionsSuppl.getQueryDefinitions();
|
XNameAccess xQueryDefs = xQueryDefinitionsSuppl.getQueryDefinitions();
|
||||||
XSingleServiceFactory xSSFQueryDefs = (XSingleServiceFactory) UnoRuntime.queryInterface(XSingleServiceFactory.class, xQueryDefs);
|
XSingleServiceFactory xSSFQueryDefs = UnoRuntime.queryInterface( XSingleServiceFactory.class, xQueryDefs );
|
||||||
Object oQuery = xSSFQueryDefs.createInstance(); //"com.sun.star.sdb.QueryDefinition"
|
Object oQuery = xSSFQueryDefs.createInstance(); //"com.sun.star.sdb.QueryDefinition"
|
||||||
XPropertySet xPSet = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, oQuery);
|
XPropertySet xPSet = UnoRuntime.queryInterface( XPropertySet.class, oQuery );
|
||||||
|
|
||||||
String s = _oSQLQueryComposer.m_xQueryAnalyzer.getQuery();
|
String s = _oSQLQueryComposer.m_xQueryAnalyzer.getQuery();
|
||||||
xPSet.setPropertyValue("Command", s);
|
xPSet.setPropertyValue("Command", s);
|
||||||
|
|
||||||
XNameContainer xNameCont = (XNameContainer) UnoRuntime.queryInterface(XNameContainer.class, xQueryDefs);
|
XNameContainer xNameCont = UnoRuntime.queryInterface( XNameContainer.class, xQueryDefs );
|
||||||
XNameAccess xNameAccess = (XNameAccess) UnoRuntime.queryInterface(XNameAccess.class, xQueryDefs);
|
XNameAccess xNameAccess = UnoRuntime.queryInterface( XNameAccess.class, xQueryDefs );
|
||||||
ConnectionTools.getObjectNames().checkNameForCreate(com.sun.star.sdb.CommandType.QUERY, _QueryName);
|
ConnectionTools.getObjectNames().checkNameForCreate(com.sun.star.sdb.CommandType.QUERY, _QueryName);
|
||||||
xNameCont.insertByName(_QueryName, oQuery);
|
xNameCont.insertByName(_QueryName, oQuery);
|
||||||
return true;
|
return true;
|
||||||
@@ -885,23 +900,23 @@ public class DBMetaData
|
|||||||
|
|
||||||
public XHierarchicalNameAccess getReportDocuments()
|
public XHierarchicalNameAccess getReportDocuments()
|
||||||
{
|
{
|
||||||
XReportDocumentsSupplier xReportDocumentSuppl = (XReportDocumentsSupplier) UnoRuntime.queryInterface(XReportDocumentsSupplier.class, this.xModel);
|
XReportDocumentsSupplier xReportDocumentSuppl = UnoRuntime.queryInterface( XReportDocumentsSupplier.class, this.xModel );
|
||||||
xReportDocumentSuppl.getReportDocuments();
|
xReportDocumentSuppl.getReportDocuments();
|
||||||
XHierarchicalNameAccess xReportHier = (XHierarchicalNameAccess) UnoRuntime.queryInterface(XHierarchicalNameAccess.class, xReportDocumentSuppl.getReportDocuments());
|
XHierarchicalNameAccess xReportHier = UnoRuntime.queryInterface( XHierarchicalNameAccess.class, xReportDocumentSuppl.getReportDocuments() );
|
||||||
return xReportHier;
|
return xReportHier;
|
||||||
}
|
}
|
||||||
|
|
||||||
public XHierarchicalNameAccess getFormDocuments()
|
public XHierarchicalNameAccess getFormDocuments()
|
||||||
{
|
{
|
||||||
XFormDocumentsSupplier xFormDocumentSuppl = (XFormDocumentsSupplier) UnoRuntime.queryInterface(XFormDocumentsSupplier.class, xModel);
|
XFormDocumentsSupplier xFormDocumentSuppl = UnoRuntime.queryInterface( XFormDocumentsSupplier.class, xModel );
|
||||||
XHierarchicalNameAccess xFormHier = (XHierarchicalNameAccess) UnoRuntime.queryInterface(XHierarchicalNameAccess.class, xFormDocumentSuppl.getFormDocuments());
|
XHierarchicalNameAccess xFormHier = UnoRuntime.queryInterface( XHierarchicalNameAccess.class, xFormDocumentSuppl.getFormDocuments() );
|
||||||
return xFormHier;
|
return xFormHier;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasFormDocumentByName(String _sFormName)
|
public boolean hasFormDocumentByName(String _sFormName)
|
||||||
{
|
{
|
||||||
XFormDocumentsSupplier xFormDocumentSuppl = (XFormDocumentsSupplier) UnoRuntime.queryInterface(XFormDocumentsSupplier.class, xModel);
|
XFormDocumentsSupplier xFormDocumentSuppl = UnoRuntime.queryInterface( XFormDocumentsSupplier.class, xModel );
|
||||||
XNameAccess xFormNameAccess = (XNameAccess) UnoRuntime.queryInterface(XNameAccess.class, xFormDocumentSuppl.getFormDocuments());
|
XNameAccess xFormNameAccess = UnoRuntime.queryInterface( XNameAccess.class, xFormDocumentSuppl.getFormDocuments() );
|
||||||
return xFormNameAccess.hasByName(_sFormName);
|
return xFormNameAccess.hasByName(_sFormName);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -929,10 +944,10 @@ public class DBMetaData
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
PropertyValue[] aDocProperties;
|
PropertyValue[] aDocProperties;
|
||||||
XModel xDocumentModel = (XModel) UnoRuntime.queryInterface(XModel.class, _xComponent);
|
XModel xDocumentModel = UnoRuntime.queryInterface( XModel.class, _xComponent );
|
||||||
String sPath = xDocumentModel.getURL();
|
String sPath = xDocumentModel.getURL();
|
||||||
String basename = FileAccess.getBasename(sPath, "/");
|
String basename = FileAccess.getBasename(sPath, "/");
|
||||||
XCloseable xCloseable = (XCloseable) UnoRuntime.queryInterface(XCloseable.class, _xComponent);
|
XCloseable xCloseable = UnoRuntime.queryInterface( XCloseable.class, _xComponent );
|
||||||
_xComponent.dispose();
|
_xComponent.dispose();
|
||||||
xCloseable.close(false);
|
xCloseable.close(false);
|
||||||
if (_bcreateTemplate)
|
if (_bcreateTemplate)
|
||||||
@@ -951,13 +966,13 @@ public class DBMetaData
|
|||||||
{
|
{
|
||||||
aDocProperties[4] = Properties.createProperty("AsTemplate", new Boolean(_bcreateTemplate));
|
aDocProperties[4] = Properties.createProperty("AsTemplate", new Boolean(_bcreateTemplate));
|
||||||
}
|
}
|
||||||
XMultiServiceFactory xDocMSF = (XMultiServiceFactory) UnoRuntime.queryInterface(XMultiServiceFactory.class, _xDocNameAccess);
|
XMultiServiceFactory xDocMSF = UnoRuntime.queryInterface( XMultiServiceFactory.class, _xDocNameAccess );
|
||||||
Object oDBDocument = xDocMSF.createInstanceWithArguments("com.sun.star.sdb.DocumentDefinition", aDocProperties);
|
Object oDBDocument = xDocMSF.createInstanceWithArguments("com.sun.star.sdb.DocumentDefinition", aDocProperties);
|
||||||
XHierarchicalNameContainer xHier = (XHierarchicalNameContainer) UnoRuntime.queryInterface(XHierarchicalNameContainer.class, _xDocNameAccess);
|
XHierarchicalNameContainer xHier = UnoRuntime.queryInterface( XHierarchicalNameContainer.class, _xDocNameAccess );
|
||||||
String sdocname = Desktop.getUniqueName(_xDocNameAccess, basename);
|
String sdocname = Desktop.getUniqueName(_xDocNameAccess, basename);
|
||||||
xHier.insertByHierarchicalName(sdocname, oDBDocument);
|
xHier.insertByHierarchicalName(sdocname, oDBDocument);
|
||||||
XInterface xInterface = (XInterface) xMSF.createInstance("com.sun.star.ucb.SimpleFileAccess");
|
XInterface xInterface = (XInterface) xMSF.createInstance("com.sun.star.ucb.SimpleFileAccess");
|
||||||
XSimpleFileAccess xSimpleFileAccess = (XSimpleFileAccess) UnoRuntime.queryInterface(XSimpleFileAccess.class, xInterface);
|
XSimpleFileAccess xSimpleFileAccess = UnoRuntime.queryInterface( XSimpleFileAccess.class, xInterface );
|
||||||
xSimpleFileAccess.kill(sPath);
|
xSimpleFileAccess.kill(sPath);
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
@@ -971,16 +986,16 @@ public class DBMetaData
|
|||||||
XComponent[] xRetComponent = new XComponent[2];
|
XComponent[] xRetComponent = new XComponent[2];
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
XComponentLoader xComponentLoader = (XComponentLoader) UnoRuntime.queryInterface(XComponentLoader.class, _xDocuments);
|
XComponentLoader xComponentLoader = UnoRuntime.queryInterface( XComponentLoader.class, _xDocuments );
|
||||||
PropertyValue[] aPropertyValues = new PropertyValue[4];
|
PropertyValue[] aPropertyValues = new PropertyValue[4];
|
||||||
aPropertyValues[0] = Properties.createProperty("OpenMode", _bOpenInDesign ? "openDesign" : "open");
|
aPropertyValues[0] = Properties.createProperty("OpenMode", _bOpenInDesign ? "openDesign" : "open");
|
||||||
aPropertyValues[1] = Properties.createProperty("ActiveConnection", this.DBConnection);
|
aPropertyValues[1] = Properties.createProperty("ActiveConnection", this.DBConnection);
|
||||||
aPropertyValues[2] = Properties.createProperty("DocumentTitle", _docname);
|
aPropertyValues[2] = Properties.createProperty("DocumentTitle", _docname);
|
||||||
aPropertyValues[3] = Properties.createProperty("AsTemplate", new Boolean(_bAsTemplate));
|
aPropertyValues[3] = Properties.createProperty("AsTemplate", new Boolean(_bAsTemplate));
|
||||||
XHierarchicalNameContainer xHier = (XHierarchicalNameContainer) UnoRuntime.queryInterface(XHierarchicalNameContainer.class, _xDocuments);
|
XHierarchicalNameContainer xHier = UnoRuntime.queryInterface( XHierarchicalNameContainer.class, _xDocuments );
|
||||||
if (xHier.hasByHierarchicalName(_docname))
|
if (xHier.hasByHierarchicalName(_docname))
|
||||||
{
|
{
|
||||||
xRetComponent[0] = (XComponent) UnoRuntime.queryInterface(XComponent.class, xHier.getByHierarchicalName(_docname));
|
xRetComponent[0] = UnoRuntime.queryInterface( XComponent.class, xHier.getByHierarchicalName( _docname ) );
|
||||||
xRetComponent[1] = xComponentLoader.loadComponentFromURL(_docname, "", 0, aPropertyValues);
|
xRetComponent[1] = xComponentLoader.loadComponentFromURL(_docname, "", 0, aPropertyValues);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1018,7 +1033,7 @@ public class DBMetaData
|
|||||||
String[] sColValues = null;
|
String[] sColValues = null;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
XRow xRow = (XRow) UnoRuntime.queryInterface(XRow.class, _xResultSet);
|
XRow xRow = UnoRuntime.queryInterface( XRow.class, _xResultSet );
|
||||||
Vector aColVector = new Vector();
|
Vector aColVector = new Vector();
|
||||||
while (_xResultSet.next())
|
while (_xResultSet.next())
|
||||||
{
|
{
|
||||||
@@ -1067,9 +1082,9 @@ public class DBMetaData
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
XInterface xInterface = (XInterface) xMSF.createInstance("com.sun.star.ucb.SimpleFileAccess");
|
XInterface xInterface = (XInterface) xMSF.createInstance("com.sun.star.ucb.SimpleFileAccess");
|
||||||
XSimpleFileAccess xSimpleFileAccess = (XSimpleFileAccess) UnoRuntime.queryInterface(XSimpleFileAccess.class, xInterface);
|
XSimpleFileAccess xSimpleFileAccess = UnoRuntime.queryInterface( XSimpleFileAccess.class, xInterface );
|
||||||
String storepath = FileAccess.getOfficePath(xMSF, "Temp", xSimpleFileAccess) + "/" + _storename;
|
String storepath = FileAccess.getOfficePath(xMSF, "Temp", xSimpleFileAccess) + "/" + _storename;
|
||||||
XStorable xStoreable = (XStorable) UnoRuntime.queryInterface(XStorable.class, _xcomponent);
|
XStorable xStoreable = UnoRuntime.queryInterface( XStorable.class, _xcomponent );
|
||||||
PropertyValue[] oStoreProperties = new PropertyValue[1];
|
PropertyValue[] oStoreProperties = new PropertyValue[1];
|
||||||
oStoreProperties[0] = Properties.createProperty("FilterName", "writer8");
|
oStoreProperties[0] = Properties.createProperty("FilterName", "writer8");
|
||||||
storepath += ".odt";
|
storepath += ".odt";
|
||||||
@@ -1118,12 +1133,12 @@ public class DBMetaData
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
Object oDialog = xMSF.createInstance("com.sun.star.sdb.ErrorMessageDialog");
|
Object oDialog = xMSF.createInstance("com.sun.star.sdb.ErrorMessageDialog");
|
||||||
XInitialization xInitialization = (XInitialization) UnoRuntime.queryInterface(XInitialization.class, oDialog);
|
XInitialization xInitialization = UnoRuntime.queryInterface( XInitialization.class, oDialog );
|
||||||
PropertyValue[] aPropertyValue = new PropertyValue[2];
|
PropertyValue[] aPropertyValue = new PropertyValue[2];
|
||||||
aPropertyValue[0] = Properties.createProperty("SQLException", oSQLException);
|
aPropertyValue[0] = Properties.createProperty("SQLException", oSQLException);
|
||||||
aPropertyValue[1] = Properties.createProperty("ParentWindow", _xWindow);
|
aPropertyValue[1] = Properties.createProperty("ParentWindow", _xWindow);
|
||||||
xInitialization.initialize(aPropertyValue);
|
xInitialization.initialize(aPropertyValue);
|
||||||
XExecutableDialog xExecutableDialog = (XExecutableDialog) UnoRuntime.queryInterface(XExecutableDialog.class, oDialog);
|
XExecutableDialog xExecutableDialog = UnoRuntime.queryInterface( XExecutableDialog.class, oDialog );
|
||||||
xExecutableDialog.execute();
|
xExecutableDialog.execute();
|
||||||
}
|
}
|
||||||
catch (com.sun.star.uno.Exception ex)
|
catch (com.sun.star.uno.Exception ex)
|
||||||
@@ -1139,7 +1154,7 @@ public class DBMetaData
|
|||||||
xNameAccess = null;
|
xNameAccess = null;
|
||||||
xDatabaseContext = null;
|
xDatabaseContext = null;
|
||||||
xDBMetaData = null;
|
xDBMetaData = null;
|
||||||
xDataSource = null;
|
m_dataSource = null;
|
||||||
xModel = null;
|
xModel = null;
|
||||||
xCompleted = null;
|
xCompleted = null;
|
||||||
xDataSourcePropertySet = null;
|
xDataSourcePropertySet = null;
|
||||||
|
@@ -251,7 +251,7 @@ public class TableWizard extends WizardDialog implements XTextListener, XComplet
|
|||||||
{
|
{
|
||||||
curScenarioSelector = new ScenarioSelector(this, this.curTableDescriptor, slblFields, slblSelFields);
|
curScenarioSelector = new ScenarioSelector(this, this.curTableDescriptor, slblFields, slblSelFields);
|
||||||
curFieldFormatter = new FieldFormatter(this, curTableDescriptor);
|
curFieldFormatter = new FieldFormatter(this, curTableDescriptor);
|
||||||
if (this.curTableDescriptor.supportsCoreSQLGrammar())
|
if ( this.curTableDescriptor.supportsPrimaryKeys() )
|
||||||
{
|
{
|
||||||
curPrimaryKeyHandler = new PrimaryKeyHandler(this, curTableDescriptor);
|
curPrimaryKeyHandler = new PrimaryKeyHandler(this, curTableDescriptor);
|
||||||
}
|
}
|
||||||
@@ -265,7 +265,7 @@ public class TableWizard extends WizardDialog implements XTextListener, XComplet
|
|||||||
boolean bTableCreated = false;
|
boolean bTableCreated = false;
|
||||||
String schemaname = curFinalizer.getSchemaName();
|
String schemaname = curFinalizer.getSchemaName();
|
||||||
String catalogname = curFinalizer.getCatalogName();
|
String catalogname = curFinalizer.getCatalogName();
|
||||||
if (curTableDescriptor.supportsCoreSQLGrammar())
|
if (curTableDescriptor.supportsPrimaryKeys())
|
||||||
{
|
{
|
||||||
String[] keyfieldnames = curPrimaryKeyHandler.getPrimaryKeyFields(curTableDescriptor);
|
String[] keyfieldnames = curPrimaryKeyHandler.getPrimaryKeyFields(curTableDescriptor);
|
||||||
if (keyfieldnames != null)
|
if (keyfieldnames != null)
|
||||||
@@ -360,7 +360,7 @@ public class TableWizard extends WizardDialog implements XTextListener, XComplet
|
|||||||
int i = 0;
|
int i = 0;
|
||||||
i = insertRoadmapItem(0, true, m_oResource.getResText(UIConsts.RID_TABLE + 2), SOMAINPAGE);
|
i = insertRoadmapItem(0, true, m_oResource.getResText(UIConsts.RID_TABLE + 2), SOMAINPAGE);
|
||||||
i = insertRoadmapItem(i, false, m_oResource.getResText(UIConsts.RID_TABLE + 3), SOFIELDSFORMATPAGE);
|
i = insertRoadmapItem(i, false, m_oResource.getResText(UIConsts.RID_TABLE + 3), SOFIELDSFORMATPAGE);
|
||||||
if (this.curTableDescriptor.supportsCoreSQLGrammar())
|
if (this.curTableDescriptor.supportsPrimaryKeys())
|
||||||
{
|
{
|
||||||
i = insertRoadmapItem(i, false, m_oResource.getResText(UIConsts.RID_TABLE + 4), SOPRIMARYKEYPAGE);
|
i = insertRoadmapItem(i, false, m_oResource.getResText(UIConsts.RID_TABLE + 4), SOPRIMARYKEYPAGE);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user