powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Program is too large
15 сообщений из 15, страница 1 из 1
Program is too large
    #33377951
w3d
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выдается сообщение:

Program is too large

Как можно это обойти?
...
Рейтинг: 0 / 0
Program is too large
    #33377973
Burn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разбить на несколько модулей меньшего размера
...
Рейтинг: 0 / 0
Program is too large
    #33377984
w3d
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программа имеет вид:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CREATE cursor REPAIRTIMES (;
    ADB        VARCHAR( 10 ) NOT NULL, ;
    ID         INTEGER NOT NULL, ;
    CODE       VARCHAR( 12 ) NOT NULL, ;
    TIMEVALUE  DOUBLE )

INSERT INTO REPAIRTIMES (ADB, ID, CODE, TIMEVALUE) VALUES ('1-',  173609 , '0001',  0 . 3199999 )
INSERT INTO REPAIRTIMES (ADB, ID, CODE, TIMEVALUE) VALUES ('1-',  173609 , '0001',  0 . 319999992847443 )
INSERT INTO REPAIRTIMES (ADB, ID, CODE, TIMEVALUE) VALUES ('1-',  173610 , '0002',  0 . 129999995231628 )
....
...
Вот этих INSERT-ов на 20 Мбайт.
Кроме как разбить на несколько частей, никак?
И, кстати, какой предельный размер программы?
...
Рейтинг: 0 / 0
Program is too large
    #33378141
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
w3dВот этих INSERT-ов на 20 Мбайт.
Кроме как разбить на несколько частей, никак?

Т.е. у тебя 20 МБ констант (значений для INSERT)? Это круто. Неужели не влом ручками молотить такой объем? Обычно такие данные все-таки как-то формализованы. Т.е. есть некая функция, вычисляющая нужные значения. Вот ее и следует использовать

w3dИ, кстати, какой предельный размер программы?
В HELP к FoxPro есть такая статья " Visual FoxPro System Capacities " - это системные ограничения FoxPro.

Для VFP9 размер программного модуля (одной процедуры) ограничен только размером оперативной памяти. Хотя есть ограничение на количество символов в одной команде (8,192 символа).

Такое сообщение об ошибке может и не быть связанно с размером. Это может быть синтаксическая ошибка, но такая, которую не смог интерпретировать анализатор FoxPro. Попробуй закомментировать большую часть твоей проги и снимать комментарии, пока не появиться эта ошибка. Далее смотри в чем причина.
...
Рейтинг: 0 / 0
Program is too large
    #33378236
Komissar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
w3dВот этих INSERT-ов на 20 Мбайт
Более 200 тысяч INSERT'ов в тексте программы???
Абсурд!!!
...
Рейтинг: 0 / 0
Program is too large
    #33378241
w3d
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМ w3dВот этих INSERT-ов на 20 Мбайт.
Кроме как разбить на несколько частей, никак?

Т.е. у тебя 20 МБ констант (значений для INSERT)? Это круто. Неужели не влом ручками молотить такой объем? Обычно такие данные все-таки как-то формализованы. Т.е. есть некая функция, вычисляющая нужные значения. Вот ее и следует использовать

Еще есть подобный файл на 145 Мб :)
Разумеется, их готовили не руками. Это экспорт из FireBird-а.
...
Рейтинг: 0 / 0
Program is too large
    #33378274
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Komissar Более 200 тысяч INSERT'ов в тексте программы???
Абсурд!!!
Что поделать - это мир больших баз данных, там все настолько неуклюже и неудобно, что это порой единственный способ передачи данных между базами данных (сейчас пытаются использовать XML)... Когда меня учили Oracle в местном универе, так там этот подход только и использовали Это мы с Вам разбалованы FoxPro
...
Рейтинг: 0 / 0
Program is too large
    #33378277
Проходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем-то, само просится написание своей программульки по распарсиванию этого самого результата экспорта и построковое выполнение через Eval() или &
...
Рейтинг: 0 / 0
Program is too large
    #33378280
Проходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вдогонку: а еще лучше через SQLPrepare и SQLExec.
...
Рейтинг: 0 / 0
Program is too large
    #33378286
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, забыл добавить - пока не было VFP 9.0 я просто писал свой Parser - который импортировал данный текстовый файл в DBF, а затем читал каждую строку и вставлял ее в таблицу FoxPro... Программа всего в несколько строк и работало все довольно быстро, даже по сравнению с bcp
...
Рейтинг: 0 / 0
Program is too large
    #33378353
w3d
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey ChДа, забыл добавить - пока не было VFP 9.0 я просто писал свой Parser - который импортировал данный текстовый файл в DBF, а затем читал каждую строку и вставлял ее в таблицу FoxPro... Программа всего в несколько строк и работало все довольно быстро, даже по сравнению с bcp
А не поделитесь, если осталось?
...
Рейтинг: 0 / 0
Program is too large
    #33378473
w3d
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уже сам наваял :)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
ff=fopen("1.txt", 10 )
if ff> 0 
CREATE cursor REPAIRTIMES (ADB VARCHAR( 10 ) NOT NULL, ID INTEGER NOT NULL, CODE VARCHAR( 12 ) NOT NULL, TIMEVALUE  FLOAT( 20 , 16 ))
do while !feof(ff)
iii=fgets(ff)
&iii
enddo
fclose(ff)
endif
...
Рейтинг: 0 / 0
Program is too large
    #33378653
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
w3dУже сам наваял :)
Я же говорил, что все просто в FoxPro

Good luck!
...
Рейтинг: 0 / 0
Program is too large
    #33382830
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi w3d!

C макро это довольно медленно будет... Если есть возможность - измени формат
выгрузки - чтоб выгружал не скрипт (для скрипта только команды создания
таблиц оставь), а скажем CSV файл (поля разделённые запятыми, строковые
значения в кавычках, одна строка - одна запись), или файл с фиксированными
размерами полей (т.е. каждое поле занимает в строке строго одно и то-же
место, поля дополнены пробелами для выравнивания) - затем через APPEND FROM
.... TYPE ... всё очень быстро загрузится.

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Program is too large
    #33382908
w3d
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Формат выгрузки, увы единственный...
Не так уж и долго, кстати - 1,3 млн записей (самый большой файл, на 140 мб) - 15 минут крутилось.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Program is too large
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]