ayuda con este codigo

netlan
14 de Febrero del 2010
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.