Ver Mensaje Individual
  #3  
Antiguo 19-03-2021
dani36652 dani36652 is offline
Miembro
 
Registrado: abr 2019
Posts: 57
Reputación: 6
dani36652 Va camino a la fama
Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
A la hora de crear Streams, puedes añadir una codificación en el método create.
Haz alguna prueba cambiandola a ver que no sea eso.
Hola amigo Germán, sigo todas tus soluciones y trabajo acerca de Delphi desde mis 16 años hasta ahora que tengo 20. Es nostálgico y de cierta manera eres una persona admirable y ejemplo a seguir.

ENCONTRÉ LA SOLUCIÓN
Resulta que Windows por defecto maneja en los TstringStream la codificación tmbcsencoding, y Android maneja la UTF-8 entonces, con respecto a lo que mencionabas, en el método create del tstringStream puedes definir tanto la codificación o el código de página de dicha codificación y por ende el tstringStream creado tiene dicha codificación. Se me ocurrió la idea de jalar el code page de tmbcsencoding y ponerlo en el método create de mi tstringStream y funciona perfectamente!!! Te agradezco demasiado por darme esa encaminada, ahora puedo subir cualquier archivo no solo imágenes a la base de datos mysql con DataSnap desde un cliente Android, el código queda así: (aclaro que es un código de prueba y la liberación de memoria de los objetos creados en tiempo de ejecución no está escrita)

Código Delphi [-]
procedure Registrar();
var 
Registro:TServerMethods1Client;
pic:TstringStream;
MStream:TMemoryStream;
Begin
conexion.connected:=true;
Registro:=TServerMethods1Client.create(conexion.DBXConnection);
pic:=TstringStream.Create('', 1252); //1252 es el code page de tmbcsencoding
MStream:=TmemoryStream.create;
MStream.Seek(0,0);
image1.bitmap.saveToStream(MStream);
pic.copyFrom(MStream, 0);
If Registro.Registrar_Alumnos('Dani',3,20,pic.DataString)=true then
Begin 
ShowMessage('correcto');
End else
Begin
Showmessage('incorrecto');
End;
End;

Del lado del server todo funciona de maravilla.
Responder Con Cita