Not to mention that the JDBC drivers from M$ are notoriously crummy. If you had some time to test the JTDS driver, it might be worth a shot - I've had great success with it and SQL 2K5.
Larry On 10/30/07, Jeff Butler <[EMAIL PROTECTED]> wrote: > I doubt this is an iBATIS issue - it must be a bug with your driver. JDBC > is officially case insensitive when retrieving columns from a result set by > name, see here (6th or 7th paragraph): > > http://java.sun.com/j2se/1.4.2/docs/api/java/sql/ResultSet.html > > You could probably code around this by using "columnIndex" instead of > "column" in your <result> element. > > Jeff Butler > > > > On 10/30/07, [EMAIL PROTECTED] > < [EMAIL PROTECTED]> wrote: > > > > > > Hi, > > I have find the problem, but it seems a bug, because I don't find > documentation about it. > > > > This is my procedure, now I paste more code than yesterday: > > > > > > CREATE PROCEDURE > [dbo].[proc_IMPUESTOSPAGADOS_SELECT_Devuelve_DirGen_UniNegPais_Paises] > > @chrIdioma char(2), > > @chrUsuario varchar(25), > > @intIdDireccionGeneral int, > > @intIdUniNegImpPag int > > > > /**** MORE ***/ > > > > IF @chrIdioma = 'ES' > > BEGIN > > SET @NombrePais = 'chrNombreSp as NombrePais' > > END > > ELSE IF @chrIdioma = 'EN' > > BEGIN > > SET @NombrePais = 'chrNombreEn as NombrePais' > > END > > > > > > SET @sentencia =' > > SELECT > ImpuestosPagados_DirGen_UniNegPais.intIdPais,' + > @NombrePais + ' > > FROM ImpuestosPagados_DirGen_UniNegPais > > INNER JOIN Paises_Paises > > ON ImpuestosPagados_DirGen_UniNegPais.intIdPais = > Paises_Paises.intIdPais > > ' > > > > > > /***** MORE ****/ > > > > END > > GO > > > > > > This is my sqlMap: > > > > <resultMap id="paisesPorDGPorUNResult" class="paisesMulti"> > > <result property="intIdPais" column="intIdPais" > jdbcType="INTEGER" javaType=" java.lang.String"/> > > <result property="nombrePais" column="NombrePais"/> > > </resultMap> > > > > <procedure id="getPaisesPorDGPorUN" > parameterClass="unidadesNegocio" > resultMap="paisesPorDGPorUNResult"> > > {call > dbo.proc_IMPUESTOSPAGADOS_SELECT_Devuelve_DirGen_UniNegPais_Paises > (#strIdioma:VARCHAR#,#strUsuario:VARCHAR#, > > #intIdDireccionGeneral:INTEGER#,#intIdUniNegImpPag:INTEGER#)} > > > > > </procedure> > > > > This procedure works fine using jdbc, but when I execute this procedure > using ibatis I have this exception: > > > > Caused by: > com.ibatis.common.jdbc.exception.NestedSQLException: > > --- The error occurred in > com/repsolypf/srf/adm/imptopag/dominio/DireccionesGenerales.xml. > > > --- The error occurred while applying a result map. > > --- Check the > DireccionesGenerales.paisesPorDGPorUNResult. > > --- Check the result mapping for the 'intIdPais' property. > > --- Cause: > com.microsoft.sqlserver.jdbc.SQLServerException: The column > name intIdPais is not valid. > > > > > > Changing the DB alias NombrePais to nombrePais, and changing too the > column name NombrePais to nombrePais in the resultMap it works fine. > > > > ¿It's alowed for iBATIS to use column (or alias) names in database > beginning by uppercase or not? > > > > I use iBATIS 2.3.0.677 whit SQLServer 2000, but using the SQLServer 2005 > driver. > > > > Thanks for your answer. > > > > Angel Guillén > > > > > > ________________________________ > Enviado el: martes, 30 de octubre de 2007 10:50 > > Para: [email protected] > > Asunto: RV: Problem with Stored Procedure SQLServer + iBatis > > > > > > > > > > > > Hello > > > > I have a problem mapping a stored procedure of SQL SERVER from iBATIS. > > > > This is my sqlMap: > > > > <resultMap id="paisesPorDGPorUNResult" class="paisesMulti"> > > <result property="intIdPais" column="intIdPais" > jdbcType="INTEGER" javaType=" java.lang.String"/> > > <result property="nombrePais" column="NombrePais"/> > > </resultMap> > > > > <procedure id="getPaisesPorDGPorUN" > parameterClass="unidadesNegocio" > resultMap="paisesPorDGPorUNResult"> > > {call > dbo.proc_IMPUESTOSPAGADOS_SELECT_Devuelve_DirGen_UniNegPais_Paises > (#strIdioma:VARCHAR#,#strUsuario:VARCHAR#, > > #intIdDireccionGeneral:INTEGER#,#intIdUniNegImpPag:INTEGER#)} > > > > > </procedure> > > > > The DB Server is a SQLServer 2000 but we are using the SQLServer 2005 JBDC > Driver (because it fix a bug that causes problems working with iBatis) > > > > When I execute this procedure i have this exception: > > > > Caused by: > com.ibatis.common.jdbc.exception.NestedSQLException: > > --- The error occurred in > com/repsolypf/srf/adm/imptopag/dominio/DireccionesGenerales.xml. > > > --- The error occurred while applying a result map. > > --- Check the > DireccionesGenerales.paisesPorDGPorUNResult. > > --- Check the result mapping for the 'intIdPais' property. > > --- Cause: > com.microsoft.sqlserver.jdbc.SQLServerException: The column > name intIdPais is not valid. > > > > The column name is ok when I execute this procedure from SqlServer client, > this is the SP: > > > > CREATE PROCEDURE > [dbo].[proc_IMPUESTOSPAGADOS_SELECT_Devuelve_DirGen_UniNegPais_Paises] > > @chrIdioma char(2), > > @chrUsuario varchar(25), > > @intIdDireccionGeneral int, > > @intIdUniNegImpPag int > > > > /**** MORE ***/ > > > > 'SELECT intIdPais,' + @NombrePais > + ' > > FROM > ImpuestosPagados_DirGen_UniNegPais > > INNER JOIN Paises_Paises > > ON > ImpuestosPagados_DirGen_UniNegPais.intIdPais = > Paises_Paises.intIdPais' > > > > /***** MORE ****/ > > > > END > > GO > > > > Do you know where is the problem? I can't see it. > > > > Greetings and thanks > > > > Angel Guillén > >
