Subject Re: [IBO] ISC error message
Author Helen Borrie (TeamIBO)
At 02:46 PM 08-01-02 +0100, you wrote:
>Hi,
>
>> >statement in a TIB_DSQL I get the following error : "ISC Error code:
>> >335544328 ISC Error message: Invalid BLOB handle".
>>
>>What is the statement?
>Insert into beschikvak (vak) values ('test');

You can't insert a string into a blob column in DSQL using InterBase, or builds of Firebird earlier than RC 1...You insert a blob into a blob column.

Now, do you have a primary key for beschikvak? A triggered generator, perhaps? You will need it so that IBO can establish a relationship between the blob and the record that is to refer to it. (Blobs are stored apart from the records that own them and the server creates a BlobID which it stores in the blob column as a reference to the actual blob data.)

Use GeneratorLinks for your primary key and make your SQL

Insert into beschikvak (pri_key, vak)
values ( :pri_key, :vak)

Here's one way to get that blob (just for test purposes) - in your BeforeExecute do this:

var
ts: TStringlist; // normally this would already exist as a memo.Lines or some other stringlist
begin
ts := TStringlist.Create;
try
ts.Add('test');
with ib_dsql1 do
begin
if not Prepared then Prepare;
TIB_ColumnBlob(Params[0]).LoadFromStrings (ts);
Execute;
end;
finally
ts.Free;
end;
end;

Given your example, the actual TStrings object that you would load from would most likely be the Lines object of a TMemo; but you can also load blobs from TStream objects or from files. Check out the methods that are available to TIB_ColumnBlob and choose the one that best fits the input you want to use.


regards,
Helen Borrie (TeamIBO Support)

** Please don't email your support questions privately **
Ask on the list and everyone benefits
Don't forget the IB Objects online FAQ - link from any page at www.ibobjects.com