Usenet.com

www.Usenet.com

Group Index

Comp Thread Archive from Usenet.com

<-- __Chronological__ --> <-- __Thread__ -->

updating table with two images



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: [EMAIL PROTECTED]
 \_,--.x/     Phone: +61 3 9791 1409
       v      Fax: +61 3 9791 1946
              Mobile: +61 412 134012
                ~~ Australia ~~





<-- __Chronological__ --> <-- __Thread__ -->


Usenet.com



Please check out one of the premium Usenet Newsgroup Service Providers below for access to Usenet.