I'm using DF-19.1 and Postgres for my back end and as it turns out, Postgres doesn't have a BLOB data type. They do however have a huge text data type, up to 1 gig which makes the CLOB & base64 concept workable. So what I did was to create a cRichText view and used the following test code for updating the text field in an existing DD record:

    // this code is directly from the DF help  
    Function Base64EncodeString String sText Returns String
          Address pBase64
          String sResult
          Integer iVoid
          Move (Base64Encode(AddressOf(sText), Length(sText))) to pBase64
          Move pBase64 to sResult
          Move (Free(pBase64)) to iVoid    
          Function_Return sResult    
        Procedure DoCreateBase64 
            String sEncrypted sValue
            Integer iRC
            Get Value of oModel_Note to sValue           // my cTextEdit object
            Get Base64EncodeString to sText sEncrypted 
            Set Field_Changed_Value Field rmshelp.helptext to sEncrypted
            Send Request_Save
I've set the text field size in the .int file to 1000000
I've also set_Argument_Size when entering the view to 5000000

The above code works with a very small image - I can retrieve the text field contents from the back end, decode the base64 string and show it in the cTextEdit object.

But it doesn't work for a larger image because the base64 string is being truncated at 131072 characters. I can see the column length in Postgres showing the text at that length. If I manually update Postgres in the back end with the full text length of 300000 characters it saves it with no problem.

If I use embedded SQL to write the value to the back end then the full text is saved as expected. So the question is if I'm missing some setting in the DD that's limiting the text?