Gupta, Abhishek
2005-10-28 15:03:06 UTC
Hello,
I am getting this exception when I try to use the object browser to view the
contents or row count.
The driver version is 1.1 and database version is 12.5.3. Squirrel is
compiled from latest cvs sources.
java.sql.SQLException: "futmatch_dev8"."dbo"."DBColumnList" not found.
Specify owner.objectname or use sp_help to check whether the object exists
(sp_help may produce lots of output).
The name of the table should be futmatch_dev8.dbo.DBColumnList i.e. without
quotes.
The reason seems to be this piece of code in class SQLDatabaseMetaData.
public synchronized String getIdentifierQuoteString() throws
SQLException
{
final String key = "getIdentifierQuoteString";
String value = (String)_cache.get(key);
if (value == null)
{
final String driverName =
getDriverName();
if
(driverName.equals(IDriverNames.FREE_TDS)
||
driverName.equals(IDriverNames.JCONNECT))
{
value = "";
}
else
{
value =
privateGetJDBCMetaData().getIdentifierQuoteString();
}
_cache.put(key, value);
}
return value;
}
To fix this I added a new driver name in IDriverNames
private interface IDriverNames
{
String FREE_TDS = "InternetCDS Type 4 JDBC driver
for MS SQLServer";
String JCONNECT = "jConnect (TM) for JDBC (TM)";
String OPTA2000 = "i-net OPTA 2000";
String JTDS = "jTDS Type 4 JDBC Driver for MS SQL
Server and Sybase";
}
And changed the above method to
public synchronized String getIdentifierQuoteString() throws
SQLException
{
final String key = "getIdentifierQuoteString";
String value = (String)_cache.get(key);
if (value == null)
{
final String driverName =
getDriverName();
if
(driverName.equals(IDriverNames.FREE_TDS)
||
driverName.equals(IDriverNames.JCONNECT)
||
driverName.equals(IDriverNames.JTDS))
{
value = "";
}
else
{
value =
privateGetJDBCMetaData().getIdentifierQuoteString();
}
_cache.put(key, value);
}
return value;
}
If this is the correct solution for this problem, please integrate this in
squirrel.
Otherwise let me know if there is another way to fix this.
Thanks
Abhishek
I am getting this exception when I try to use the object browser to view the
contents or row count.
The driver version is 1.1 and database version is 12.5.3. Squirrel is
compiled from latest cvs sources.
java.sql.SQLException: "futmatch_dev8"."dbo"."DBColumnList" not found.
Specify owner.objectname or use sp_help to check whether the object exists
(sp_help may produce lots of output).
The name of the table should be futmatch_dev8.dbo.DBColumnList i.e. without
quotes.
The reason seems to be this piece of code in class SQLDatabaseMetaData.
public synchronized String getIdentifierQuoteString() throws
SQLException
{
final String key = "getIdentifierQuoteString";
String value = (String)_cache.get(key);
if (value == null)
{
final String driverName =
getDriverName();
if
(driverName.equals(IDriverNames.FREE_TDS)
||
driverName.equals(IDriverNames.JCONNECT))
{
value = "";
}
else
{
value =
privateGetJDBCMetaData().getIdentifierQuoteString();
}
_cache.put(key, value);
}
return value;
}
To fix this I added a new driver name in IDriverNames
private interface IDriverNames
{
String FREE_TDS = "InternetCDS Type 4 JDBC driver
for MS SQLServer";
String JCONNECT = "jConnect (TM) for JDBC (TM)";
String OPTA2000 = "i-net OPTA 2000";
String JTDS = "jTDS Type 4 JDBC Driver for MS SQL
Server and Sybase";
}
And changed the above method to
public synchronized String getIdentifierQuoteString() throws
SQLException
{
final String key = "getIdentifierQuoteString";
String value = (String)_cache.get(key);
if (value == null)
{
final String driverName =
getDriverName();
if
(driverName.equals(IDriverNames.FREE_TDS)
||
driverName.equals(IDriverNames.JCONNECT)
||
driverName.equals(IDriverNames.JTDS))
{
value = "";
}
else
{
value =
privateGetJDBCMetaData().getIdentifierQuoteString();
}
_cache.put(key, value);
}
return value;
}
If this is the correct solution for this problem, please integrate this in
squirrel.
Otherwise let me know if there is another way to fix this.
Thanks
Abhishek