简体   繁体   中英

Error 61 Array type cannot be modified in compiled database

I have a 4D server (lets call it 4D server 1) that sends a BLOB to another 4D server (4D Server 2) via SOAP web service. The BLOB consists of arrays, that when parsed saves to corresponding tables.

There are times (very few) when the BLOB fails to parse, we then log to a table. The error indicated is:

Error 61: The type of array cannot be modified in a compiled database.

How do I pinpoint which array in the BLOB is causing the error?
What steps do I take to remedy the problem?

We send Arrays and Variables as a BLOB created with ObjectTools. There are better (Error-)Logging and handling Routines. We had never corrupt Arrays.

http://www.aparajitaworld.com/objecttools/ ObjectTools is a 4th Dimension plug-in which provides a set of routines that allow you to create objects: a single entity in which you can store and retrieve any amount of data of differing types.

To extract array you are using some BLOB TO VARIABLE commands, as :

$vlOffset:=0
BLOB TO VARIABLE($blob;$array1;$vlOffset)
BLOB TO VARIABLE($blob;$array2;$vlOffset)
BLOB TO VARIABLE($blob;$array3;$vlOffset)

The $vlOffset will contain the start of position of the variable inside the Blob. The internal structure of the blob is : RVLB + Type + Var + Type + Var ..

So you should try to check the Type : the first at position 4, the others at $vlOffset positions:

  • 14 Real array
  • 15 Integer array
  • 16 Longint array
  • 17 Date array
  • 18 Text array
  • 19 Picture array
  • 21 String array
  • 22 Boolean array
  • 39 Object array

cfr http://doc.4d.com/4Dv14/4D/14.4/Type.301-2512277.en.html

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM