В настоящее время я пытаюсь перенести несколько тысяч записей из файла MULTIKEYED в плоский файл STRING, который создает большую инструкцию SQL INSERT для удаления данных с наших серверов. ФАЙЛ базы для вставки в SQL Server для тестирования.Получение ошибки 31 в BBx (Business Basic)
Я успешно сделал это с несколькими другими файлами с очень похожей программой, но этот продолжает производить переполнение рабочей области с ошибкой 31, я попытался укоротить длину строки, массива и фильтрацию через файл, чтобы я получить только записи с датой новее, чем 15 февраля 2012
вот отрывок сюда mthe онлайн помощь BBx об ошибке 31:
ERROR = 31 - Рабочая область Переполнение памяти Для BBJ-специфической информации, см.! ERROR Изменения в BBj.
Недостаточно памяти рабочего пространства. Выделение большего рабочего пространства с помощью START-глагола может исправить эту ошибку.
• Попытка измерения большой строки или массива.
• Попытка ЗАГРУЗИТЬ большую программу.
• Попытка манипулировать большой струной.
• Попытка прочитать или записать большую запись.
• Попытка редактирования программы, которая приведет к тому, что программа станет больше доступной памяти.
• Попытка сделать программу дольше, чем разрешено, даже если памяти достаточно.
• Попытка ввода команды режима консоли, скомпилированная длина которой превышает 256 байт.
Я довольно уверен, что я не нарушение любого из этих условий
какие-либо идеи?
0001 STRING "/u/x/scc/scott.sql"
0002 OPEN (1)"/u/x/scc/scott.sql"
0004 LET ARRAYLEN=27
0005 DIM A$[1:ARRAYLEN]
0010 OPEN (2)"V1OEMF"
0015 LET K$=""; READ (2,KEY=K$,DOM=0016)
0020 LET K$=KEY(2,END=15000)
0030 READ (2,KEY=K$)A$[ALL]
0035 FOR I=1 TO ARRAYLEN STEP 1; IF A$[I]="" THEN LET A$[I]=".."; NEXT I
0036 FOR I=1 TO ARRAYLEN STEP 1
0039 IF POS("'"=A$[I])<>0 THEN LET A$[I](POS("'"=A$[I]),1)=" "; GOTO 0039
0040 NEXT I
0050 IF A$[14]<"B20215" THEN GOTO 0020
0080 PRINT "INSERT INTO WMS.dbo.V1OEMF VALUES ('"+A$[1]+"','"+A$[2]+"','"+A$[4
0080:]+"','"+A$[5]+"','"+A$[6]+"','"+A$[7]+"','"+A$[8]+"','"+A$[9]+"','"+A$[12
0080:]+"','"+A$[14]+"','"+A$[25]+"','"+A$[27]+"');"
0100 GOTO 0020
15000 CLOSE (1); CLOSE (2)
Я использовал START 2000 для выделения большего объема памяти программе и все еще получаю ошибку – ScottC