Acerca de:

Este blog contiene los códigos, ejemplos y bases de datos que he usado cuando aprendía acerca de algún tema específico. En lugar de borrarlos (una vez dominado ya el tema), he decidido publicarlos :)

miércoles, 14 de marzo de 2012

VB6: Error '-2147217887 (80040e21)' en tiempo de ejecución

El mensaje completo de mi error es:
"Error '-2147217887 (80040e21)' en tiempo de ejecución. Error en el método 'DataSource' del objeto 'IMSHFlexGrid'"


El error saltaba en esta línea de código:
miHierarchicalFlexGrid.DataSource = unRecordset

Lo curioso es que el recordset mostraba sus datos correctamente en varias cajas de texto. Algo debía haber en el recordset que no era compatible con el Hierarchical FlexGrid al que quería enlazarlo.

La base de datos que estoy utilizando es AdventureWorks para SQL Server 2005. Ésta es una base de datos de ejemplo y se puede descargar de Internet. La tabla a la que se conecta el recordset es "Persons.Contact":


Y mirando la tabla Persons.Contact noté que uno de los campos tiene un tipo de datos que no había visto antes: XML. Decidí cambiarlo a VarChar y correr nuevamente el programa.
Ya no sale el error y el recordset sí se puede mostrar en el Hierarchical FlexGrid.

Conclusión: El Hierarchical FlexGrid de Visual Basic 6 no es compatible con tipos de datos XML.

1 comentario:

Alejandro Puerta dijo...

Que grande, acabo de entrar por que tenia el mismo error pero en un recodset, ya no deberia estar usando VB6 pero en fin, resulta que era el mismo detalle, no es compatible con los campos XML.

Muchas gracias!!!!