Forums before death by AOL, social media and spammers... "We can't have nice things"
|    comp.databases.oracle    |    Overblown overpriced overengineered SHIT    |    2,288 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 561 of 2,288    |
|    Vladimir Kanovnik to All    |
|    updating table with two images    |
|    22 Oct 03 09:56:45    |
   
   From: vlad@melbpc.org.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@melbpc.org.au   
    \_,--.x/ Phone: +61 3 9791 1409   
    v Fax: +61 3 9791 1946   
    Mobile: +61 412 134012   
    ~~ Australia ~~   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca