Subject | Re: [IBO] ISC error message |
---|---|
Author | Helen Borrie (TeamIBO) |
Post date | 2002-01-08T14:45:52Z |
At 02:46 PM 08-01-02 +0100, you wrote:
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
>Hi,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.
>
>> >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');
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