[C con Clase] Dudas con variables...
Steven Davidson
srd4121 en njit.edu
Jue Mayo 29 20:42:38 CEST 2008
Stereo System wrote:
>
> Acabo de descubrir que en la pagina hay informacion sobre MysqlAPI
> CON c++...
> SI yo quisiese formular una inserccion de informacion, desde una
> varaible de c++ a una consulta para terminar en la table...
> Como seria ? Respecto a las variables...
>
> mysql_query(&local, "INSERT INTO fiesta (invitados) values (' nombre
> ');");
>
> donde nombre es una variable...
>
Como ya dije en mi mensaje anterior, deberás construir esa cadena de
caracteres. No existe ninguna funcionalidad en el lenguaje para
manipular cadenas, por lo que necesitarás usar las bibliotecas
estándares, como 'strcpy()', 'strcat()', o 'sprintf()'. Por cierto,
deberías usar 'mysql_real_query()', en lugar de 'mysql_query()'. El
ejemplo sigue la misma lógica que el ejemplo en mi mensaje anterior:
char szConsulta[4096]=""; // una cadena bien grande
char nombre[128];
...
sprintf( szConsulta, "INSERT INTO fiesta (invitados) values (' %s ')",
nombre );
mysql_real_query( &local, szConsulta );
Date cuenta de la omisión del punto y coma en la sentencia MYSQL. Las
funciones 'mysql_real_query()' y 'mysql_query()' no requieren tal
carácter al final de una sentencia MYSQL. Ahora bien, si estás enviando
múltiples sentencias MYSQL, entonces sí necestias el punto y coma o \g
para separarlas.
> He segido tu consejo usando string pero el compilador parece q no le
> cae muy bien...
Ten presente que para poder usar 'string', necesitas usar el espacio con
nombre 'std'. Para hacer las cosas más sencillamente, escribe la
directiva de compilador: using namespace std; Te doy un ejemplo
completo pero sencillo:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string strMensaje = "Hola Mundo!";
cout << strMensaje << endl;
strMensaje += " Arriba C++!";
cout << strMensaje << endl;
cout << "Convirtiendo al estilo C: \"" << strMensaje.str() << '"'
<< endl;
return 0;
}
Espero que esto te ayude.
Steven
Más información sobre la lista de distribución Cconclase