none
Integration Services vs ODBC de Informix RRS feed

  • Pregunta

  • Hola!! Os cuento...

    Tengo en mi equipo instalado el driver de ODBC para Informix, de 32 bits.(Mi equipo Windows 7 64 bits)
      - He testeado la conexión desde la configuración del ODBC y funciona
      - He vinculado tablas en access mediante el odbc y veo datos

    Cuando creo un proyecto de Integration Services, creo un Origen de datos que apunta al ODBC. En una "tarea de flujo de datos" creo un "Origen de ADO NET" y espedifico el ODBC. Cuando selecciono que quiero Tablas, me lista las tablas que hay en informix, pero cuando le doy a Vista Previa me da el siguiente error:

    TÍTULO: Microsoft Visual Studio
    ------------------------------

    Error en Tarea Flujo de datos [Origen de ADO NET [274]]:
    System.Data.Odbc.OdbcException: ERROR [42000] [Informix][Informix ODBC Driver][Informix]A syntax error has occurred.
        en System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle, RetCode retcode)
        en System.Data.Odbc.OdbcCommand.ExecuteReaderObject(CommandBehavior
    behavior, String method, Boolean needReader, Object[] methodArguments, SQL_API odbcApiMethod)
        en System.Data.Odbc.OdbcCommand.ExecuteReaderObject(CommandBehavior
    behavior, String method, Boolean needReader)
        en System.Data.Odbc.OdbcCommand.ExecuteReader(CommandBehavior
    behavior)
        en System.Data.Odbc.OdbcCommand.ExecuteDbDataReader(CommandBehavior
    behavior)
        en
    System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior
    behavior)
        en
    Microsoft.SqlServer.Dts.Pipeline.DataReaderSourceAdapter.ReinitializeMetaData()
        en
    Microsoft.SqlServer.Dts.Pipeline.ManagedComponentHost.HostReinitializeMetaData(IDTSManagedComponentWrapper100
    wrapper)


    ------------------------------
    INFORMACIÓN ADICIONAL:

    ERROR [42000] [Informix][Informix ODBC Driver][Informix]A syntax error has occurred. (iclit09b.dll)

     

    En Propiedades del proyecto ya cambié en Depuración , la opción Run64bitsRuntime a FALSE.

     

    Cualquier pista será bienvenida ;-)

    Gracias

    miércoles, 13 de julio de 2011 9:43

Respuestas

  • Hola de nuevo.

    He probado (estoy segura de que probé en su dia ¿?) a poner una select : select * from tabla. Y así funciona.

    Parece ser que la "cajita" le manda algo raro al driver cuando se selecciona una tabla.

    Doy por cerrado el hilo.

    Gracias a todos.

     

    • Marcado como respuesta CrisPueyo martes, 26 de julio de 2011 11:00
    martes, 26 de julio de 2011 11:00

Todas las respuestas

  • El error lo devuelve el driver al ejecutar una consulta de la cual no tenemos pista. No sabemos si SSIS envía algo que no le gusta al driver o no construye bien la instrucción o a saber...

    ¿Te ocurre también ese error cuando ejecutas el proceso?

    miércoles, 13 de julio de 2011 9:49
  • Hola.

    Lo que selecciono es una tabla cualquiera (he probado con varias tablas).

    El error lo da al darle al "Vista Previa", ejecutarlo no puedo porque el componente se queda con error.

    Lo curioso es que me llega a mostrar la lista de tablas pero en cuanto intenta leer los datos da error.

    Gracias

     

    miércoles, 13 de julio de 2011 10:10
  • A lo que me refiero es a que intentes exportar los datos de cualquier tabla a, por ejemplo, un fichero de texto para probar que el proceso va a funcionar. No es necesario pulsar el botón "Vista previa" para poder crear un dataflow.

    Es decir, que igual lo único que no funciona es esa opción, lo cual tampoco sería mucho problema...

    miércoles, 13 de julio de 2011 10:34
  • No comprendo lo que me dices.

    El origen de datos (Ventana :Explorador de soluciones, carpeta Orgenes de datos) lo creo sin problemas y el testeo de la conexión funciona.

    Dentro del flujo de datos (Pestaña flujo de datos) arrastro de "Origenes de flujos de datos" la caja "Origen de ADO NET" , la cual intento configurar indicandole el origen de datos anterior, pero al darle "Aceptar" da el error que indico.

    Si esa caja no llego a configurarla sin error no le puedo asocias el destino de un fichero plano.

    miércoles, 13 de julio de 2011 11:25
  • Antes decías que el error te aparecía cuando pulsabas el botón "Vista previa", que no es lo mismo que el botón "Aceptar", así que no tengo claro lo que te ocurre.

    A lo que me refiero es a si puedes configurar el componente de origen, seleccionando únicamente la tabla y dando al botón de "Aceptar", sin pulsar ningún otro botón.

    En cualquier caso, ¿por qué estás usando el origen ADO.NET? Hay un tipo de conexión específica para ODBC...

    miércoles, 13 de julio de 2011 11:41
  •  

    El error da al darle a Vista previa y tambien en el aceptar.

     ¿Hay un tipo de ORIGEN específica para odbc?

    POrque a mi solo me aparecen:

    Origenes de flujo de datos:

     - Origen de ADO NET

     - Origen de archivo plano

     - Origne de archivo sin formato

     - Origen de Excel

    - Origen de OLE DB

     - Origen XML.

    Lo que yo tengo definido relacionado con ODBC es la conexión : Proveedores.NET ->Odbc Data Provider.

     

     

     

    miércoles, 13 de julio de 2011 12:43
  • Sí, disculpa, estaba confundido cuando publiqué esa última respuesta.

    Volviendo a tu problema, parece que todo se centra en el driver. Prueba a descargarte el driver OLEDB para Informix, que supongo se podrá descargar de la web de IBM

    miércoles, 13 de julio de 2011 14:23
  • Hola.

    ¿Obtuviste el driver? ¿Resolviste el problema?


    Alberto López Grande
    SQL Server MVP
    Visita mi blog en http://qwalgrande.blogspot.es/ Sígueme en twitter en http://twitter.com/qwalgrande

    miércoles, 20 de julio de 2011 21:27
    Moderador
  • Hola.

    Tengo el problema en stand by , ahora sobre el servidor que tengo que trabajar es un Windows Server2008 y cuando instalo el driver la instalacion no da problema , pero a la hora de configurar el odbc no me aparece como opcion el driver de Informix.

    (para el ¿moderador? no puedo marcar la contestación de qwalgrande como respuesta porque he visto que hay gente que ha podido llegar a Informix mediante odbc)

    comentaré en cuanto tenga avances.

    gracias.

    lunes, 25 de julio de 2011 9:26
  • Hola, es muy posible que el problema por el que no ves el driver es por las diferencias 32 bits, 64 bits. Si tu driver odbc está instalado en 32 bits lo verás usando odbcad32, y luego podrás verlo desde el entorno de desarrollo. Ojo, que luego cuando subas tu paquete, ha de ejecutarse en 32 bits. para eso en el propio job tienes una pestaña donde especificarlo.  


    Comparte lo que sepas, aprende lo que no sepas (FGG) http://www.portalsql.com
    martes, 26 de julio de 2011 8:34
    Moderador
  • Si, no se por qué arranque el de System32 en vez de este C:\Windows\SysWOW64\odbcad32.exe.

    Ya he declarado el odbc de nuevo. Un problema menos.

    Gracias

    martes, 26 de julio de 2011 8:50
  • Genial ¿que problemas te quedan para resolver este hilo?
    Comparte lo que sepas, aprende lo que no sepas (FGG) http://www.portalsql.com
    martes, 26 de julio de 2011 8:52
    Moderador
  • El problema que queda es el que planteo en el primer post.

    Carlos Sacristan me propone una alternativa y es configurar y utilizar driver OLEDB para Informix.

    He visto por foros que hay gente que ha conseguido utilizar el driver de ODBC con los ETL de Integration Services y que tienen problemas de formatos pero pueden ver datos.

    En cuanto pueda probaré con lo que comenta Carlos.

    Un saludo.

    martes, 26 de julio de 2011 9:03
  • Hola,

    Retomando la respuesta de Carlos, sobre que no tenemos pista acerca de la consulta, y siendo el error de sintaxis (y no de otro tipo), le he pedido a Cris que, en lugar de utilizar el asistente, escribiera directamente la consulta SELECT * FROM TABLA.

    Me confirma que ahora sí ha funcionado.

    Por lo visto el asistente esta enviando una consulta con algún caracter que Informix no acepta.

     

     

     

    martes, 26 de julio de 2011 10:59
  • Hola de nuevo.

    He probado (estoy segura de que probé en su dia ¿?) a poner una select : select * from tabla. Y así funciona.

    Parece ser que la "cajita" le manda algo raro al driver cuando se selecciona una tabla.

    Doy por cerrado el hilo.

    Gracias a todos.

     

    • Marcado como respuesta CrisPueyo martes, 26 de julio de 2011 11:00
    martes, 26 de julio de 2011 11:00