PDA

Ver la Versión Completa : TMysql imagenes jpeg


xobius
11-02-2004, 16:21:16
hola a todos.

Estoy utilizando el componente Tmysql, con el cual quiero cargar una
imagen jpg en un campo Blob.

para ello el copmponente posee un metodo como el siguiente:
Mysql.modify.add('nombredelcampo',pchar(''''+cadena de texto+'''');
para luego utilizar el metodo prepare insert y execute.
De esa manera se carga cualquier campo.

Como necesito cargar una imagen utilizo la clase TMemoryStream, al
cual asigno la imagen del siguiente modo:

imagen:=jpeg.create; (definida en var como imagen:tgraphic;//incluyo
en la clausula uses la unidad jpeg)
imagen.loadfromfile('directrio/archivo.jpg');

//Para luego asignarselo al Stream asi
Stream:=TMemoryStream.create; (definida en var como
Stream:TMemoryStream)
imagen.savetostream(stream);

//Aqui vienen los problemas
// como necesito cargar los datos en un buffer lo hago del siguiente
modo
new(buffer); // definida en var como buffer:pchar
block:=stream.size+1; //entero
buffer:=AllocMem(block);
//finalmente
stream.readbuff(buffer,stream.size);

aqui es donde salta una excepcion que me indica que la carga se
realiza de manera incorrecta.
He probado con otros tipos de TStream (TFileStream para ser presiso)
y me continua dando el mismo error.

Ya he intentado todo lo que se me ha ocurrido sin lograr hacerlo
funcionar.

Si alguien conoce como usar la clase TStream u otra manera de ingresar
imgenes en campos blob agradeceria su ayuda.

saludos.

Jose