problema c++ con SQL Oracle Buenas,
estoy liado con un ejercicio de clase se tratata de insertar en una tabla clientes, que he creado previamente, unos valores que voy pidiendo al usuario. Utilizo el virtual studio 6 y Oracle8i (vamos a la ultima en tecnologia :) ).
Me da un error al parecerporque falta hacer un casting de char a SQLCHAR* (undefinied char).
Gracias por las ideas!, Adjunto el codigo:
-----------------------------------------------------------------------------------------------------------------------------------------------
el codigo de error que da visual studio:
Compiling...
Ejercicio_DAW.cpp
C:\Program Files\Microsoft Visual Studio\MyProjects\Ej2_8\Ejercicio_DAW.cpp(59) : error C2440: '=' : cannot convert from 'char' to 'unsigned char *'
Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
C:\Program Files\Microsoft Visual Studio\MyProjects\Ej2_8\Ejercicio_DAW.cpp(86) : warning C4508: 'main' : function should return a value; 'void' return type assumed
Error executing cl.exe.
Ejercicio_DAW.exe - 1 error(s), 1 warning(s)
--------------------------------------------------------------------------------------------------------------------------------------------------
El codigo fuente:
#include <windows.h>
#include <sqlext.h>
#include <stdio.h>
main()
{
SQLHENV henv1;
SQLHDBC hdbc1;
SQLRETURN estado;
SQLHSTMT hstmt1;
SQLCHAR* sentencia;
SQLINTEGER DNI;
SQLCHAR* nombre;
SQLCHAR* direccion;
SQLINTEGER telefono;
SQLINTEGER DNIInd=0;
SQLINTEGER nombreInd=SQL_NTS;
SQLINTEGER direccionInd=SQL_NTS;
SQLINTEGER telefonoInd=0;
SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&hen v1);
SQLSetEnvAttr(henv1,SQL_ATTR_ODBC_VERSION,(SQLPOIN TER*)SQL_OV_ODBC3,0);
SQLAllocHandle(SQL_HANDLE_DBC, henv1, &hdbc1);
estado=SQLConnect(hdbc1,
(SQLCHAR*) "Base de Datos Oracle",20,
(SQLCHAR*) "polly",5,
(SQLCHAR*) "gone",4);
SQLAllocHandle(SQL_HANDLE_STMT, hdbc1, &hstmt1);
printf("introduzca el DNI del cliente\n");
scanf("%d",&DNI);
printf("introduzca el nombre del cliente\n");
scanf("%s",&nombre);
printf("introduzca la direccion del cliente\n");
scanf("%s",&direccion);
printf("introduzca el telefono del cliente\n");
scanf("%d",&telefono);
SQLBindParameter(hstmt1,1,SQL_PARAM_INPUT,SQL_C_SL ONG,SQL_INTEGER,9,0,&DNI,0,&DNIInd);
SQLBindParameter(hstmt1,2,SQL_PARAM_INPUT,SQL_C_CH AR,SQL_CHAR,50,0,&nombre,0,&nombreInd);
SQLBindParameter(hstmt1,3,SQL_PARAM_INPUT,SQL_C_CH AR,SQL_CHAR,50,0,&direccion,0,&direccionInd);
SQLBindParameter(hstmt1,4,SQL_PARAM_INPUT,SQL_C_SL ONG,SQL_INTEGER,9,0,&telefono,0,&telefonoInd);
sentencia=(char)"INSERT INTO clientes VALUES(?,?,?,?)";
estado=SQLExecDirect(hstmt1,sentencia, 255);
if
(estado==SQL_SUCCESS||estado==SQL_SUCCESS_WITH_INF O)
{
printf("\nInsercion en tabla clientes realizada con exito\n");
}
else
{
printf("\nInsercion en tabla no realizada con exito\n");
}
SQLEndTran(SQL_HANDLE_DBC,hdbc1,SQL_COMMIT);
SQLFreeHandle(SQL_HANDLE_STMT, hstmt1);
estado=SQLDisconnect(hdbc1);
SQLFreeHandle(SQL_HANDLE_DBC, hdbc1);
SQLFreeHandle(SQL_HANDLE_ENV, henv1);
} |