Ver Mensaje Individual
  #3 (permalink)  
Antiguo 12/11/2015, 06:24
eferion
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 10 años, 3 meses
Puntos: 204
Respuesta: problema c++ con SQL Oracle

Código C++:
Ver original
  1. sentencia=(char)"INSERT INTO clientes VALUES(?,?,?,?)";
no debería ser?
Código C++:
Ver original
  1. sentencia = (char*)"INSERT INTO clientes VALUES(?,?,?,?)";
o directamente...
Código C++:
Ver original
  1. sentencia = "INSERT INTO clientes VALUES(?,?,?,?)";
???

Aunque ya puestos, en C++ eso no es técnicamente correcto. Para empezar "algo" es un const char*, no un char*. La solución "cruda" pasa entonces por hacer una reserva de memoria para sentencia y después llamar a strcpy para copiar el texto en dicha región de memoria. La solución más sencilla pasa por usar la clase std::string y te quitas de problemas.

Código C++:
Ver original
  1. std::string sentencia = "INSERT INTO clientes VALUES(?,?,?,?)";
  2. estado=SQLExecDirect(hstmt1,sentencia.c_str(), 255);

---------
EDITO:

Aunque bueno, para usos tan simples como los de tu ejemplo casi es más sencillo que declares sentencia como const char*:

Código C++:
Ver original
  1. const char* sentencia;
  2. sentencia = "INSERT INTO...";
  3. estado=SQLExecDirect(hstmt1,sentencia, 255);

Un saludo.
__________________
La ayuda se paga con esfuerzo o con dinero. Si no estás dispuesto a esforzarte y quieres que te hagan los deberes pide presupuesto, al menos así ahorrarás tiempo.

Última edición por eferion; 12/11/2015 a las 07:43