Skip to Content.
Sympa Menu

freetds - Re: [freetds] Squirrel JDBC-ODBC Bridge and freeTDS ODBC

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: Зверев Виталий Борисович <VZverev AT genesis.spb.ru>
  • To: "FreeTDS Development Group" <freetds AT lists.ibiblio.org>
  • Cc: colbell AT users.sourceforge.net
  • Subject: Re: [freetds] Squirrel JDBC-ODBC Bridge and freeTDS ODBC
  • Date: Tue, 8 Nov 2005 16:40:36 +0300

Ok, Frediano, as you wish.
Squirrel has SQLConnection.java module (a nise setCatalog wrapper), which
could outperform my workaround:
public void setCatalog(String catalogName)
throws SQLException
{
validateConnection();
final Connection conn = getConnection();
final String oldValue = conn.getCatalog();
if (!StringUtilities.areStringsEqual(oldValue, catalogName))
{
try
{
conn.setCatalog(catalogName);
}
catch (SQLException ex)
{
// MS SQL Server throws an exception if the
catalog name
// contains a period without it being quoted.
conn.setCatalog(quote(catalogName));
<-------------------- gotcha!
}

getPropertyChangeReporter().firePropertyChange(IPropertyNames.CATALOG,

oldValue, catalogName);
}
}

perhaps it should looks like:

if (!ex.getSQLState().equalsIgnoreCase("01000"))
conn.setCatalog(quote(catalogName));
else throw ex;

Sincerely yours.
-------------------------------------------------------
Vitaly Zverev, OCP DBA 8&8i
Oracle E-Business Suite &
Infiniband Linux Cluster Administrator
Genesis Ltd., St.Petersburg, Russia



> -----Original Message-----
> From: freetds-bounces AT lists.ibiblio.org
> [mailto:freetds-bounces AT lists.ibiblio.org] On Behalf Of
> ZIGLIO, Frediano, VF-IT
> Sent: Tuesday, November 08, 2005 11:51 AM
> To: FreeTDS Development Group
> Subject: Re: [freetds] Squirrel JDBC-ODBC Bridge and freeTDS ODBC
>
>
> > Thanks Frediano,
> > it works pefect now for getSchemas() and getCatalogs().
> > However the setCatalog() probably was broken in Squirrel 2.0
> > rc1 from scratch.
> > If somebody interesting about workaround it in odbc.c, the
> next patch
> > may be suitable:
> > bash-2.03$ diff -c CVS/odbc.c odbc.c
> > *** CVS/odbc.c Tue Nov 8 00:08:22 2005
> > --- odbc.c Tue Nov 8 00:15:28 2005
> > ***************
> > *** 219,224 ****
> > --- 219,230 ----
> > {
> > TDSSOCKET *tds = dbc->tds_socket;
> >
> > + if (database[0]=='"' &&
> > database[database_len-1]=='"' && database_len>2){
> > + database[database_len-1]='\0';
> > + database++;
> > + database_len--;
> > + database_len--;
> > + };
> > /*
> > * We may not be connected yet and dbc->tds_socket
> > * may not initialized.
> > bash-2.03$
> >
> > Sincerely yours.
> > -------------------------------------------------------
> > Vitaly Zverev, OCP DBA 8&8i
> > Oracle E-Business Suite &
> > Infiniband Linux Cluster Administrator Genesis Ltd., St.Petersburg,
> > Russia
> >
>
> I would prefer a real fix not a workaround. change_database
> accept a unquoted "catalog" name not a quoted one.
>
> freddy77
> _______________________________________________
> FreeTDS mailing list
> FreeTDS AT lists.ibiblio.org
> http://lists.ibiblio.org/mailman/listinfo/freetds
>




Archive powered by MHonArc 2.6.24.

Top of Page