Cita:
Empezado por Neftali [Germán.Estévez]
|
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); 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.