InsertJSONList() ein Limit bei x86 ?
Verfasst: 05.04.2024 08:35
In einem Projekt bekomme ich mit PB 6.xx x86! unter Windows einen IMA bei InsertJSONList(), wenn die Liste grösser wird.
(Dieses Handling wird zum Export von Datenbank-Tables genutzt...)
In meinem folgenden Beispiel, kommt ein IMA direkt bei Max = 200.000 .... bei 100.000 noch nicht.
Es ist auch egal ob man ASM oder C-Backend nutzt.
Mit x64 ist das ganze kein Problem, da rauscht es ohne Fehlermeldung durch, Egal wie gross die Liste ist.
Ist das ein Bug oder eher etwas, was ich verreisse ?
Edit : x86 ist leider wichtig, da in dem Projekt die EZTW.lib genutzt wird und die leider nur in 32Bit zur Verfügung steht!
(Dieses Handling wird zum Export von Datenbank-Tables genutzt...)
In meinem folgenden Beispiel, kommt ein IMA direkt bei Max = 200.000 .... bei 100.000 noch nicht.
Es ist auch egal ob man ASM oder C-Backend nutzt.
Mit x64 ist das ganze kein Problem, da rauscht es ohne Fehlermeldung durch, Egal wie gross die Liste ist.
Code: Alles auswählen
Structure s_resultItem
AsString.s
AsNumber.q
EndStructure
Structure s_result
Map Column.s_resultItem()
EndStructure
NewList Row.s_result()
Procedure.i ExportResults(FileName.s, List Row.s_result())
Protected jSon = CreateJSON(#PB_Any, #PB_JSON_NoCase)
Protected Result = #False
If jSon
Debug ListSize(Row())
InsertJSONList(JSONValue(jSon), Row())
Result = SaveJSON(jSon, FileName, #PB_JSON_PrettyPrint)
FreeJSON(jSon)
EndIf
ProcedureReturn Result
EndProcedure
Filename.s = "R:\testfile.json" ; Change it !
Max = 200000 ; IMA at InsertJSONList()
;Max = 100000 ; No Error
For i=1 To Max
AddElement(Row())
For x = 65 To 89
Row()\Column(Chr(x))\AsString = Chr(x) + "a1"
Row()\Column(Chr(x))\AsNumber = Random(200000, 0)
Next x
Next i
ExportResults(Filename, Row())
Edit : x86 ist leider wichtig, da in dem Projekt die EZTW.lib genutzt wird und die leider nur in 32Bit zur Verfügung steht!