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.