SoloCodigo
Programación General => C/C++ => Visual C++ => Mensaje iniciado por: ZiCruz en Lunes 7 de Mayo de 2007, 15:09
-
Hola tod@s,
tengo un problemilla,
WinPcap no da todo el paquete en un unsigned char * y no se comu guardarlo en la base de datos.
había optado por covertirlo en hexadecimal y guárdalo, pero al convertirlo en hexadecimal de la siguiente menera:
Nota: tOriginal es el campo que nos da WinPcap (unsigned char *)
a_tOriginal = "";
for (unsigned int i = 0; i < longTrama ; i++) {
a_tOriginal += String::Format("{0:X} ", tOriginal)->PadLeft(3, L'0');
} // FIN for(i)
el rendimiento en la aplicación se resiente bastante.
Lo ideal sería poder guárdalo en la base de datos con algún tipo que la conversión rápida a algún tipo de datos de SQL, he encontrado SqlBinary, no si habrá otro mejor, pero no se como convertirlo de unasigned char * a SQLBinary, o una manera más rápida y eficaz de convertir a hexadecimal.
Me podrias echar una máno a ver sabia alguna manera rapida de hacerlo ya sea en C, C++ o C++/CLI.
-
unsigned char* es una cadena asi que como tal deberia irse directo a un campo varchar de la base de datos, si la información es muy grande y el tipo varchar no la soporta, entonces la puedes meter en una columna blob o clob...
la libreria que usas para conectarte a la base de datos te debe proveer métodos para convertir de tipos nativos de c a tipos de la base de datos , sino te da opción de convertir desde char * entonces utiliza la clase String para convertir ese char * a un tipo String y ese string si de seguro te lo dejara llevar a la base de datos de algunas de las formas que te dije o de las que ya mencionaste.