Newer sybase's are case sensitive with regards to object names (i.e. 
tables/cols/indexes).

Morgan Delagrange wrote:

> Good catch, I believe you are correct.  I'll patch it up today.
>
> - Morgan
>
> On Thu, 19 Apr 2001, Dave Dribin wrote:
>
> > Hello,
> >
> > I was just playing around with the 04/19 version of the JDBC tag
> > library and trying to run the example pages.  I am using Oracle as a
> > back-end database and using a JNDI named datasource under Resin 1.2.3.
> > I am getting the following exception while running the jndijdbc.jsp
> > page:
> >
> > javax.servlet.jsp.JspTagException: Could not find column named id
> >         at 
>org.apache.taglibs.jdbc.resultset.BaseGetterTag.getColumnNumber(BaseGetterTag.java:245)
> >         at 
>org.apache.taglibs.jdbc.resultset.BaseGetterTag.getPosition(BaseGetterTag.java:111)
> >         at 
>org.apache.taglibs.jdbc.resultset.GetNumberTag.doStartTag(GetNumberTag.java:149)
> >
> > I tracked down the problem to this line in the JSP:
> >
> >       <td><sql:getNumber colName="id" format="CURRENCY" locale="en_GB"/></td>
> >
> > Now, it turns out that if I use all caps for the column name like "ID"
> > rather than "id" it works.  I think this is due to the fact that I am
> > running Oracle and it is probably passing back the column names in all
> > caps regardless of how the table was created.  However, colName should
> > probably be doing a case insensitive compare.  I narrowed it down to
> > this bit of code in BaseGetterTag.java:
> >
> >    236        for (int i = 1; i <= cntColumn; i++) {
> >    237          if (strName.equals (meta.getColumnName (i))) {
> >    238            return i;
> >    239          }
> >    240        }
> >
> > Changing line 237 to use String.equalsIgnoreCase() should fix it.  SQL
> > is not case sensitive, right?
> >
> > -Dave
> >

Reply via email to