Oracle - C++ con SQL Oracle

 
Vista:
sin imagen de perfil

C++ con SQL Oracle

Publicado por raul (1 intervención) el 12/11/2015 12:28:54
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,&henv1);

SQLSetEnvAttr(henv1,SQL_ATTR_ODBC_VERSION,(SQLPOINTER*)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_SLONG,SQL_INTEGER,9,0,&DNI,0,&DNIInd);
SQLBindParameter(hstmt1,2,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,50,0,&nombre,0,&nombreInd);
SQLBindParameter(hstmt1,3,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,50,0,&direccion,0,&direccionInd);
SQLBindParameter(hstmt1,4,SQL_PARAM_INPUT,SQL_C_SLONG,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_INFO)
{
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);

}
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