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);
}