Subject RE: [firebird-support] question about blob type
Author Storage Box
mmmm.....I don't like the varchar param solution, that would negate my use
of the blob field in the database in the first place.

So, I'd have to find a way to "convert" text fields into blobs in my
application?

Ouch : (


_____

From: Helen Borrie [mailto:helebor@...]
Sent: Wednesday, December 08, 2004 4:42 PM
To: firebird-support@yahoogroups.com
Subject: RE: [firebird-support] question about blob type


At 03:18 PM 8/12/2004 -0700, you wrote:

>Well, all of my blobs in this database are exactly the same (text) and the
>front-end validates that something is entered into it, every time.
>
>When I do a test insert, I provide a value, it still gives me an error.
>Here's an example:
>
>1. My Table:
>
>CREATE TABLE product
>(
> product_id int NOT NULL,
> product_name VARCHAR(50),
> product_num VARCHAR(50),
> synopsis VARCHAR(500),
> description blob sub_type text segment size 1024 not null,
> wholesale_price DECIMAL(9,2),
> unit_price DECIMAL(9,2),
> sale_price DECIMAL(9,2),
> weight DECIMAL(9,2),
> height DECIMAL(9,2),
> width DECIMAL(9,2),
> length_sz DECIMAL(9,2),
> insured_value DECIMAL(9,2),
> is_free_shipping CHAR(1) NOT NULL,
> shipping_amt DECIMAL(9,2),
> is_cross_sell DECIMAL(9,2) NOT NULL,
> thumbnail VARCHAR(100),
> photo VARCHAR(100),
>CONSTRAINT PK_product_id PRIMARY KEY (product_id)
>);
>
>
>2. My Stored Procedure:
>
>CREATE PROCEDURE ins_product
>(
> product_name VARCHAR(50),
> product_num VARCHAR(50),
> synopsis VARCHAR(500),
> description blob,
> wholesale_price DECIMAL(9, 2),
> unit_price DECIMAL(9, 2),
> sale_price DECIMAL(9, 2),
> weight DECIMAL(9, 2),
> height DECIMAL(9, 2),
> width DECIMAL(9, 2),
> length_sz DECIMAL(9, 2),
> insured_value DECIMAL(9, 2),
> is_free_shipping CHAR(1),
> shipping_amt DECIMAL(9, 2),
> is_cross_sell CHAR(1),
> thumbnail VARCHAR(100),
> photo VARCHAR(100)
>)
>returns
>(
> product_id_ int
>)
>AS
>begin
> product_id_ = GEN_ID(gen_product_id, 1);
>
> insert into
> product
> (
> product_id,
> product_name,
> product_num,
> description,
> synopsis,
> wholesale_price,
> unit_price,
> sale_price,
> weight,
> height,
> width,
> length_sz,
> insured_value,
> is_free_shipping,
> shipping_amt,
> is_cross_sell,
> thumbnail,
> photo
> )
> values
> (
> :product_id_,
> :product_name,
> :product_num,
> :description,
> :synopsis,
> :wholesale_price,
> :unit_price,
> :sale_price,
> :weight,
> :height,
> :width,
> :length_sz,
> :insured_value,
> :is_free_shipping,
> :shipping_amt,
> :is_cross_sell,
> :thumbnail,
> :photo
> );
>end
> ^
>
>3. How I Executed It:
>
>execute procedure ins_product
>(
> 'test prod',
> 'test prod num',
> 'test synopsis',
> 'test description, this is a blob field!',
> 10.99,
> 10.99,
> 10.99,
> 10.99,
> 10.99,
> 10.99,
> 10.99,
> 10.99,
> 'Y',
> 10.99,
> 'N',
> 'image.gif',
> 'image.gif'
>);
>
>4. Error:
>
>ISC ERROR CODE:335544384
>
>ISC ERROR MESSAGE:
>internal error
>

OK, this is simple. You define the input argument for description as a
blob, but you passed a string to it. Either redefine the input argument as
a varchar (valid up to 32,565 bytes in length) or pass a blob.

>
>You'll notice I defined what type of blob it should be in the table but did
>not define it for the sproc's parameter (not even sure if that matters!?)

It doesn't matter - the db engine doesn't care. But it does care if it is
expecting a blob and you pass a string.

./heLen




Yahoo! Groups Sponsor

<http://us.ard.yahoo.com/SIG=129m1inj7/M=324847.5707096.6763800.3001176/D=gr
oups/S=1705115386:HM/EXP=1102635717/A=2343726/R=0/SIG=12injpug2/*http://clk.
atdmt.com/VON/go/yhxxxvon01900091von/direct/01/&time=1102549317223985>
<http://us.ard.yahoo.com/SIG=129m1inj7/M=324847.5707096.6763800.3001176/D=gr
oups/S=1705115386:HM/EXP=1102635717/A=2343726/R=1/SIG=12injpug2/*http://clk.
atdmt.com/VON/go/yhxxxvon01900091von/direct/01/&time=1102549317223985>


Get unlimited calls to

U.S./Canada


<http://view.atdmt.com/VON/view/yhxxxvon01900091von/direct/01/&time=11025493
17223985>

<http://us.adserver.yahoo.com/l?M=324847.5707096.6763800.3001176/D=groups/S=
:HM/A=2343726/rand=681253445>

_____

Yahoo! Groups Links


* To visit your group on the web, go to:
http://groups.yahoo.com/group/firebird-support/


* To unsubscribe from this group, send an email to:
firebird-support-unsubscribe@yahoogroups.com
<mailto:firebird-support-unsubscribe@yahoogroups.com?subject=Unsubscribe>


* Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service
<http://docs.yahoo.com/info/terms/> .




[Non-text portions of this message have been removed]