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.