Subject | RE: [IBO] INVALID BLOB ID - PutVarSlice |
---|---|
Author | Jason Wharton |
Post date | 2006-11-10T21:10:53Z |
Yes, this is very likely exactly what the problem is.
This could be quite difficult to work around.
I would need to know more of what you are doing to advise you on how to work
around things.
The problem stems from using array's via a buffered dataset. I believe the
root of the problem is in how arrays are handled by the server. The
temporary array id must be posted to the server and then the record with the
new permanent ID must be fetched before another call to GetSlice can be
made.
The way I would have to work around this would be to have a separate query
internally do the update and refetch of the array id and put it into the
dataset such that you were not aware. It would be a little bit of a
performance hit to prepare and execute the various queries to accomplish
this, but it would cause the problem to go away.
HTH,
Jason Wharton
-----Original Message-----
From: IBObjects@yahoogroups.com [mailto:IBObjects@yahoogroups.com]On Behalf
Of Johannes Pretorius
Sent: Friday, October 27, 2006 12:38 AM
To: IBObjects@yahoogroups.com
Subject: [IBO] INVALID BLOB ID - PutVarSlice
Good day all
-=00=-=-0=-0=-0
We have had problems in the past with invalid blob ID's. WE thought that
moving the interbase version higher than 5.6 will fix
it , but this seems is not the case.
Then today I found some comments ins
procedure TIB_ColumnArray.PutVarSlice( const Values: variant );
Where it states near the end
SysSetIsNull( false );
// Need to finish the auto re-fetch of the new ARRAY ID after this call is
made.
// Otherwise, an Invalid BLOB ID error is generated if a call to get_slice
// is performed using the temporary Array ID that put slice creates.
SysAfterModify;
end;
Now what I want to know if there is a possibility that this is the reason
for the Invalid blob Id's that we get every now and again.
It is very hard for us to emulate the problems as it is intermittent at
clients, thus we cannot get to the exact line of code that is the problem.
Any help will be appreciated
Interbase version where problem occurs : 5.6 -> 7.5
IBOBjects 4.6
Thanks
Johannes Pretorius
This could be quite difficult to work around.
I would need to know more of what you are doing to advise you on how to work
around things.
The problem stems from using array's via a buffered dataset. I believe the
root of the problem is in how arrays are handled by the server. The
temporary array id must be posted to the server and then the record with the
new permanent ID must be fetched before another call to GetSlice can be
made.
The way I would have to work around this would be to have a separate query
internally do the update and refetch of the array id and put it into the
dataset such that you were not aware. It would be a little bit of a
performance hit to prepare and execute the various queries to accomplish
this, but it would cause the problem to go away.
HTH,
Jason Wharton
-----Original Message-----
From: IBObjects@yahoogroups.com [mailto:IBObjects@yahoogroups.com]On Behalf
Of Johannes Pretorius
Sent: Friday, October 27, 2006 12:38 AM
To: IBObjects@yahoogroups.com
Subject: [IBO] INVALID BLOB ID - PutVarSlice
Good day all
-=00=-=-0=-0=-0
We have had problems in the past with invalid blob ID's. WE thought that
moving the interbase version higher than 5.6 will fix
it , but this seems is not the case.
Then today I found some comments ins
procedure TIB_ColumnArray.PutVarSlice( const Values: variant );
Where it states near the end
SysSetIsNull( false );
// Need to finish the auto re-fetch of the new ARRAY ID after this call is
made.
// Otherwise, an Invalid BLOB ID error is generated if a call to get_slice
// is performed using the temporary Array ID that put slice creates.
SysAfterModify;
end;
Now what I want to know if there is a possibility that this is the reason
for the Invalid blob Id's that we get every now and again.
It is very hard for us to emulate the problems as it is intermittent at
clients, thus we cannot get to the exact line of code that is the problem.
Any help will be appreciated
Interbase version where problem occurs : 5.6 -> 7.5
IBOBjects 4.6
Thanks
Johannes Pretorius