> On Jul 25, 2017, at 6:02 PM, Jeffrey Kain via 4D_Tech <[email protected]>
> wrote:
>
> So why not BLOBs? Why not pictures, or text variables? Why does C_OBJECT
> flaunt the limited scoping abilities we have in 4D? The only reason I can
> think of is because an object can contain references to other other objects,
> and it would get really hard to explain what to do with all the parent object
> references if a child object 10 layers deep got modified.
Also note that when objects referencing other objects have a cycle (the same
object included in more than one path) strange performance issues popup. The
execution time for the method below increases 40 times when a cycle is added.
Tested 15.4 Mac.
John DeSoi, Ph.D.
C_BOOLEAN($1;$executeBug)
If (Count parameters>=1)
$executeBug:=$1
Else
$executeBug:=True
End if
C_LONGINT($iCol;$iRow;$rowCount;$ms;$fast;$slow;$total)
C_OBJECT($oCursor;$oAllRows;$oRow;$oName)
$colCount:=5
ARRAY OBJECT($aCol;$colCount)
For ($iCol;1;$colCount)
OB SET($aCol{$iCol};"name";"name "+String($iCol);"number";$iCol)
End for
OB SET ARRAY($oCursor;"columns";$aCol)
$rowCount:=3000
For ($iRow;1;$rowCount)
CLEAR VARIABLE($oRow)
For ($iCol;1;$colCount)
OB SET($oRow;String($iCol);String($iCol))
End for
OB SET($oAllRows;String($iRow);$oRow)
End for
OB SET($oCursor;"rows";$oAllRows)
$oAllRows:=OB Get($oCursor;"rows")
$fast:=MAXLONG
$slow:=0
$total:=Milliseconds
For ($iRow;1;$rowCount)
$ms:=Milliseconds
$oRow:=OB Get($oAllRows;String($iRow))
$ms:=Milliseconds-$ms
If ($ms<$fast)
$fast:=$ms
End if
If ($ms>$slow)
$slow:=$ms
End if
//If this is executed, access on $oAllRows starts taking up to 40
times longer.
If ($executeBug & ($iRow=100))
For ($iCol;1;$colCount)
OB SET($oName;OB Get($aCol{$iCol};"name");$aCol{$iCol})
End for
OB SET($oCursor;"names";$oName)
End if
End for
$total:=Milliseconds-$total
ALERT(String($total)+" ms, range "+String($fast)+"-"+String($slow))
If (Count parameters=0)
EXECUTE METHOD(Current method name;*;False)
End if
**********************************************************************
4D Internet Users Group (4D iNUG)
FAQ: http://lists.4d.com/faqnug.html
Archive: http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub: mailto:[email protected]
**********************************************************************