updating table with two images
From: Vladimir Kanovnik <vlad_at_melbpc.org.au>
Date: Wed, 22 Oct 2003 09:56:45 GMT
Message-ID: <xvslb.161208$bo1.101366_at_news-server.bigpond.net.au>
ord_content_type in varchar2,
ord_content_blob out blob
)
as
Date: Wed, 22 Oct 2003 09:56:45 GMT
Message-ID: <xvslb.161208$bo1.101366_at_news-server.bigpond.net.au>
I have table with columns id(number), photo(blob) and thumbnail(blob). I would like to insert image (using stored procedure) from file to column photo and in same time copy reduced image to column thumbnail. My code is: CREATE OR REPLACE PROCEDURE "MDEMO"."PUT_PHOTO_THUMB" (
image_file_directory in varchar2,
image_file_name in varchar2,
image_file_mime_type in varchar2,
image_http_path in varchar2,
image_http_name in varchar2,
ord_procedure_path in varchar2,
ord_content_type in varchar2,
ord_content_blob out blob
)
as
localImage ordsys.ordimage;
localThumb ordsys.ordimage;
begin
/*
* Create an empty object.
*/
localImage := ordsys.ordimage( ordsys.ordsource( empty_blob(),
null,
null,
null,
null,
null ),
null,
null,
null,
null,
null,
null,
null );
localThumb := ordsys.ordimage( ordsys.ordsource( empty_blob(),
null,
null,
null,
null,
null ),
null,
null,
null,
null,
null,
null,
null );
/*
* Process the request based on the location of the new image.
*/
if length( image_file_directory ) > 0 then
/*
* Image is stored as a FILE in a database server directory.
* Set the local image object to reference the specified file.
*/
localImage.clearLocal();
localImage.setSource( 'FILE',
image_file_directory,
image_file_name );
localImage.setMimeType( image_file_mime_type );
elsif length ( image_http_path ) > 0 then
/*
* Image is stored on a web server somewhere.
* Set the local image object to reference the URL.
*/
localImage.clearLocal();
localImage.setSource( 'HTTP',
image_http_path,
image_http_name );
else
/*
* Image is being uploaded from the client to be stored in the
database.
* Set the flag to indicate the image is to be stored in the object's
* local-data BLOB.
*/
localImage.setLocal();
localImage.setMimeType( ord_content_type );
localThumb.setMimeType( ord_content_type );
/* copy reduced image from localImage to localThumb*/
localImage.processCopy('maxScale=50,50',localThumb);
end if;
/*
* Update the image object in the table. If the image is to be stored in
* the object's local-data BLOB, then return the LOB handle so the web
* agent can store the image in the database.
*/
if localImage.isLocal() then
update MPHOTOS i set i.IMAGE = localImage where ID =
ord_procedure_path
return i.IMAGE.source.localdata into ord_content_blob;
update MPHOTOS i set i.THUMB = localThumb where ID =
ord_procedure_path
return i.THUMB.source.localdata into ord_content_blob;
else
update MPHOTOS i set i.IMAGE = localImage where ID =
ord_procedure_path;
update MPHOTOS i set i.THUMB = localThumb where ID =
ord_procedure_path;
end if;
end;
/
SHOW ERRORS;
When I want to execute (using intermedia clipboard) I receive a message
"invalid LOB locator specified". What is wrong?
Thanx in advance
--
--
,-._|\ Vladimir Kanovnik Melbourne PC UsersGroup
/ Oz \ Email: vlad_at_melbpc.org.au
\_,--.x/ Phone: +61 3 9791 1409
v Fax: +61 3 9791 1946
Mobile: +61 412 134012
~~ Australia ~~
Received on Wed Oct 22 2003 - 11:56:45 CEST
