Subject RE: [ib-support] invalid Blod ID error on Firebird
Author Helen Borrie
At 05:08 PM 05-12-02 -0600, you wrote:
>Helen,
>thanks for reply - the following is the delphi procedure.
>This code is unchanged from code that worked with the
>Borland Open Source 1.0 release and as I said I am
>using IBX (Interbase Tab)
>
>So are you saying that the Firebird side is not accepting the
>.AsBlob

It won't be Firebird, per se, but that your application is not passing a
parameter of the type expected by the stored procedure.

You still haven't provided the declarations for the input parameters for
this SP. This is where you have to look.

Firebird differs from (advances from) IB 6 wrt blob inputs, insofar as it
will accept a string as input to a blob column. However, it hasn't changed
anything wrt to blob inputs, i.e. if you pass a blob in a blob parameter,
it will process it just as IB 6 did. So we are not looking at Firebird
doing something different with blobs than IB 6 did.

This line may be causing your problems on the application side:

ParamByName('iCallDetailMemo').AsBlob :=
CallLog.Lines.Text; -------------------Here is blob info

Try changing this to

ParamByName('iCallDetailMemo').AsString := CallLog.Lines.Text;

This should work properly regardless of whether the SP expects a blob or a
string as input.

I'd also go further and protect it from errors in null text with
if CallLog.Lines.Count > 0 then
ParamByName('iCallDetailMemo').AsString := CallLog.Lines.Text
else
ParamByName('iCallDetailMemo').Clear;

We're getting into the realm of "off-topic" for this list. I suspect the
crucial question here is still the input type that your SP expects.

heLen