Por el momento estoy realizando lo siguiente:
Con un Loader obtengo la imágen que quiero guardar (funciona OK)
Llamo a la funcion "guardarImagen" cuando se completo la carga de la imágen (por ende la imágen pende del objeto event tipo Event).
Luego codifico la imágen a JPG mediante JPGEncoder (funciona OK)
Abro una conexión con la Base de Datos mediante SQLConnection (funciona OK)
Finalmente escribo el comando SQL en un string y lo asigno al método TEXT de la conexión para luego ejecutarlo.
Aquí viene el problema.. Les paso el código AS3:
NOTA:
La base de datos es creada en tiempo de ejecución, mediante el siguiente código SQL (funciona OK y la base se crea PERFECTAMENTE).
Código :
public function crearTablas():void
{
var createObj:SQLStatement = new SQLStatement();
var strSQL:String = new String();
strSQL = "CREATE TABLE IF NOT EXISTS imagenes(";
strSQL += "cod_propiedad INTEGER PRIMARY KEY AUTOINCREMENT,";
strSQL += "imagen BLOB";
strSQL += ");";
createObj.text = strSQL;
createObj.sqlConnection = conn;
createObj.execute();
Ahora sigue el código que comprime imágen a JPG con calidad máxima (100) y luego "intenta" guardarla en la Base de Datos:
Código :
private function guardarImagen(event:Event):void
{
var bmd:BitmapData = Bitmap(event.currentTarget.content).bitmapData;
var jpegEnc:JPEGEncoder = new JPEGEncoder(100);
var selectObj:SQLStatement = new SQLStatement();
var strSQL:String;
strSQL = "INSERT INTO imagenes (imagen) + "VALUES ("+jpegEnc.encode(bmd)+")";
selectObj.sqlConnection = conn;
selectObj.text = strSQL;
selectObj.execute();
}
Al entrar en la ultima línea "selectObj.execute();" tira el siguiente error:
Código :
SQLError: 'Error #3115: SQL Error.', details:'near "ÿØÿà": syntax error', operation:'execute' at flash.data::SQLStatement/internalExecute() at flash.data::SQLStatement/execute()
NOTA 2:
Si realizo un "trace" del ByteArray que devuelve la función "jpegEnc.encode(bmd)" obtengo información correcta de la imágen, o sea que se intentan guardar los datos correctos, pero por algún motivo que desconozco no se están guardando. También aclaro que el campo "imagen" de la Base de Datos es de tipo BLOB, que me pareció el correcto para imágenes de acuerdo a los cientos de foros que recorrí con respecto a imágenes guardadas en Bases de Datos.
Bueno.. espero no haber sido muy complicado y que todo se comprenda... POR FAVOR!! AYUDA!!!
Mil gracias muchachos!!
Salu2
