Visual C++ .NET - ADO con #import

 
Vista:

ADO con #import

Publicado por Anesco (2 intervenciones) el 15/11/2006 20:11:39
Hola a todos, y gracias por atenderme.
He creado una aplicación SDI con AppWizard para acceder a datos."Encargos.exe"
Intento crear un Recordset(_RecordsetPtr) como dato miembro de la clase(CDlgProveedores)
Añado al fichero de cabecera "dialogos.h" el dato miembro _Recorsetptr m_pRs; y me da el error
: error C2146: syntax error: missing ';' before identifier 'm_pRs'.
Aunque si puedo crear el Recordset como variable local en cualquier función en el fichero de implementación "dialogos.cpp" y la aplicación se ejecuta correctamente.
En la vista "CEncargosView.h" y en el documento "CEncargos.doc" también puedo crear el Recordsert como miembro de la clase.
No conozco VisualC.NET programo con VisualC++6.
Agradezco muchísimo cualquier ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Error al declarar _RecordsetPtr como dato miembro en un proyecto MFC

Publicado por Alejandro (265 intervenciones) el 30/01/2024 00:11:11
Si estás utilizando Visual Studio con un proyecto basado en MFC (Microsoft Foundation Classes), el error que estás enfrentando podría deberse a la falta de inclusión del encabezado adecuado o a la ubicación incorrecta de la declaración `_RecordsetPtr` en tu archivo de cabecera.

Asegúrate de seguir estos pasos:

1. Inclusión del encabezado:
- En tu archivo de cabecera (`dialogos.h`), asegúrate de incluir el encabezado necesario para `_RecordsetPtr`. En un proyecto MFC, esto generalmente es:

1
#include <afxdb.h>

2. Espacio de nombres:
- Asegúrate de estar utilizando el espacio de nombres adecuado en tu archivo de cabecera. En MFC, puedes estar usando el espacio de nombres `ATL` y `ADODB`. Asegúrate de tener algo como esto al comienzo de tu archivo de cabecera:

1
2
3
4
#include <afxdb.h>
 
using namespace ATL;
using namespace ADODB;

3. Orden de inclusión:
- Verifica que estás incluyendo los encabezados necesarios en el orden correcto. Por lo general, el encabezado de MFC (`afx.h`) debe ser incluido antes de otros encabezados de MFC y ADO.

1
2
#include <afx.h>
#include <afxdb.h>

Además, asegúrate de que `afxdb.h` se incluya antes de tu declaración de `_RecordsetPtr` en tu archivo de cabecera.

4. Declaración del Recordset:
- La declaración del `_RecordsetPtr` debería verse algo así:

1
_RecordsetPtr m_pRs;

Asegúrate de que esta declaración esté dentro de la sección de declaración de clase (`class ... { ... };`) y no dentro de una función.

5. Reconstrucción del proyecto:
- Después de realizar cambios en tu archivo de cabecera, asegúrate de reconstruir completamente tu proyecto para aplicar los cambios.

Si después de seguir estos pasos aún enfrentas el problema, revisa si hay otros errores en tu código que puedan estar afectando la declaración del `_RecordsetPtr`. A veces, un error anterior puede hacer que el compilador no interprete correctamente las declaraciones subsiguientes.

Además, ten en cuenta que Visual C++ .NET tiene algunas diferencias en la forma en que se manejan las clases y los espacios de nombres en comparación con Visual C++ 6, así que ten cuidado con las diferencias y actualiza tu código en consecuencia.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar