Ver Mensaje Individual
  #1  
Antiguo 18-03-2021
dani36652 dani36652 is offline
Miembro
 
Registrado: abr 2019
Posts: 57
Reputación: 6
dani36652 Va camino a la fama
Exclamation Error de codificación en lasubida de imágenes a una bd con DataSnap

Hola a todos excelente comunidad, tengo pensado un sistema para mi ex escuela que consiste en almacenar archivos pdf en una base de datos y posteriormente poder descargarlos.
Planeo un sistema cliente-servidor usando DataSnap server, implementé un código de prueba que al ejecutarlo en Windows, la parte del cliente corre correctamente y si guarda el registro con el parámetro que mando, la cosa está en que cuando intento correr el mismo código en un cliente Android me salta un error con la siguiente descripción: "No mapping for the unicode character exists in the target multi-byte code page"
Paso el memoryStream como string desde el cliente al server.
Código del cliente:
Código Delphi [-]
procedure Registrar();
var 
Registro:TServerMethods1Client;
pic:TstringStream;
MStream:TMemoryStream;
Begin
conexion.connected:=true;
Registro:=TServerMethods1Client.create(conexion.DBXConnection);
pic:=TstringStream.Create('');
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;

Código en el server:
Código Delphi [-]
Function Registro(nombre:String; grado:Integer; edad:Integer; foto:WideString):Boolean;
Var
Query:TFDQuery;
Imagen:TmemoryStream;
Begin
  Try
       Try 
 Query:=TFDQuery.Create(Self);
Query.connection:=conexion;
Query.SQL.Clear;
Imagen:=TstringStream.Create(Foto);
Query.SQL.Text:='INSERT INTO alumnos(nombre, grado, edad, foto) VALUES(:nombre, :grado, :edad, :foto)';
Query.ParamByName('nombre').AsString:=nombre;
Query.ParamByName('grado').AsInteger:=grado;
Query.ParamByName('edad').AsInteger:=edad;
Query.ParamByName('foto').LoadFromStream(Imagen, ftblob);
Query.ExecSQL;
        Finally 
FreeAndNil(Query);
FreeAndNil(Imagen);
        End;
Result:=true;
  Except
Result:=False;
  End;
End;
Les agradecería mucho su ayuda gracias!
Responder Con Cita