updating table with two images

From: Vladimir Kanovnik <vlad_at_melbpc.org.au>
Date: Wed, 22 Oct 2003 09:57:05 GMT
Message-ID: <Rvslb.161209$bo1.68470_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:57:05 CEST

Original text of this message