Nick Christopher wrote:

> 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