Hi Lisa,
you have understood my thought.
I would disagree *slightly* with you here; I can't imagine a case where the ADDITIVE keyword for APPEND MEMO would make a lot of sense for blobs although it is obviously quite useful for memo fields <s>.
If i define a my BINARY file format, and this have not a header or a footer,
then to add two blob have sense.
Another issue is this, APPEND MEMO is more powerfull of REPLACE or UPDATE.
Preface:
APPEND MEMO fieldMemoOrBlob FROM Filename
is theoretically equal to
REPLACE fieldMemoOrBlob WITH fieldMemoOrBlob+FILETOSTR(Filename)
or
UPDATE ... SET fieldMemoOrBlob = fieldMemoOrBlob+FILETOSTR(Filename)
but !! this is not true in practical:
* THIS IS ALLOWED
APPEND MEMO fieldMemoOrBlob FROM FileWithSizeMore16M OVERWRITE
REPLACE fieldMemoOrBlob WITH FILETOSTR(FileWithSizeMore16M)
* THIS IS ALLOWED
APPEND MEMO fieldMemoOrBlob FROM FileWithAnySize OVERWRITE
APPEND MEMO fieldMemoOrBlob FROM FileWithASizeThatDoFieldMemoOrBlobMore16M
....
* THIS IS NOT ALLOWED ( overflow string lengh error is fired )
REPLACE fieldMemoOrBlob WITH FILETOSTR(FileWithAnySize)
REPLACE fieldMemoOrBlob WITH fieldMemoOrBlob+FILETOSTR(FileWithASizeThatDoFieldMemoOrBlobMore16M)
I have no knowledge about how this was implemented. Given Aleksey's response, however, I'm thinking that they leveraged the current memo-handling that occurs when you use NOCPTRANS (memo binary). So that would mean things like SET BLOCKSIZE and PACK MEMO might indeed impact blobs. But I am guessing.
I agree with you.
My message to Aleksey is for remove my guess.
Fabio