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 

Reply via email to