SoloCodigo
Programación General => C/C++ => Visual C++ => Mensaje iniciado por: netlan en Viernes 12 de Febrero de 2010, 14:58
-
El problema que tengo es que tengo una funcion que tiene un parametro de entrada como string, hace una busqueda en la base de datos y teoricamente que devolveria lo que encuentre. Pero el problema es que solo me devuelve el primer caracter de lo que ha encontrado. Os muestro el siguiente codigo:
BSTR __declspec(dllexport) obtenir_dades2(BSTR idcode)
{
//aux_id = &idcode;
LPSTR buffer ;
// LPSTR buffer2 ;
buffer = (LPSTR)idcode;
_RecordsetPtr Rs(__uuidof(Recordset));
//se le asocia la conexión
Rs->PutRefActiveConnection(pAdoCone);
_bstr_t bstrSql;
_bstr_t strApe2;
bstrSql = "Select nombre from especial_wert where codigo = " + idcode;
try{
//cadena de tipo _bstr_t con la sentencia SQL necesaria
//abro el recordset
Rs->Open(bstrSql,vtMissing,adOpenForwardOnly,adLockReadOnly,adCmdText);
/////////////////// conversion strings a chars///////////////
while(!Rs->adoEOF) //mientras no se fin de archivo...
{
//obtengo el valor del campo apellido
strApe2 = Rs->Fields->GetItem("nombre")->Value;
return(SysAllocString(strApe2));
//Rs->MoveNext();
}
//cierro y libero el recordset
Rs->Close();
Rs.Release();
//return 1;
//return (strApe);
///__stdcall CALLBACK StringExample(strApe);
}
catch (...)
{
// ver_com_error(ce);
//return strApe;
}
return strApe2;
}
muchas gracias.
-
Supongo que estas mezclando ANSI y Unicode, depuralo y mira en memoria, si a cada caracter le sigue un 0 es lo que digo.
-
Muchas gracias, lo tendre en cuenta. Pero actualmente estoy pasando pasando un codigo n codigo tipp
10 y tendria que retornar eternal y solo obtengo la primera letra.
Si me puedes ayudar con l codigo, te lo agradeceria mucho.
EI: juntando mensajes.
Solucionado, muchas gracias.
-
De nada.