Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.06.03;
Скачать: CL | DM;

Вниз

проблема с большими строковыми константами   Найти похожие ветки 

 
StriderMan ©   (2007-05-16 10:14) [0]

есть строковая константа более 7000 строк, килобайт 280 примерно (SQL скрипт).

При компиляции делфи съедает около 800 мегабайт памяти, иногда виснет напрочь. Также подобное иногда случается при РЕДАКТИРОВАНИИ модуля - вываливаются часы и та же истоирия с памятью.

пробовал объявлять как resourcestring - то же самое.

пару раз получилось получить сообщение об ошибке типа
unit contains too many constants, make procedure shortly.

как быть? не хочется вытаскивать скрипт в отдельный файл.


 
Loginov Dmitry ©   (2007-05-16 10:28) [1]

> есть строковая константа более 7000 строк, килобайт 280
> примерно (SQL скрипт).


Как же ты ее вручную набивал-то хоть?


 
Jeer ©   (2007-05-16 10:28) [2]

Клади в базу


 
StriderMan ©   (2007-05-16 10:31) [3]


> Loginov Dmitry ©   (16.05.07 10:28) [1]
> Как же ты ее вручную набивал-то хоть?

круглосуточно целый месяц набивал :))

скрипт предназначен для конвертирования структуры БД от одной версии до другой. Сгенерен Database Comparer"ом.


> Клади в базу

смысл? проще в файлик тогда.


 
clickmaker ©   (2007-05-16 10:53) [4]

а может это... stored proc?


 
StriderMan ©   (2007-05-16 11:02) [5]


> clickmaker ©   (16.05.07 10:53) [4]
> а может это... stored proc?

не понял мысль.


 
clickmaker ©   (2007-05-16 11:03) [6]

хранимая процедура


 
StriderMan ©   (2007-05-16 11:10) [7]


> clickmaker ©   (16.05.07 11:03) [6]
> хранимая процедура

я знаю что такое stored proc, спасибо
как ХП может помочь в сабж"е?


 
clickmaker ©   (2007-05-16 11:21) [8]


> как ХП может помочь в сабж"е?

SQL скрипт в виде нее оформить


 
SpellCaster   (2007-05-16 11:22) [9]

Гм, а что мешает хранить скрипт в отдельном файле и динамически подгружать его через Query.SQL.LoadFromFile?


 
DrPass ©   (2007-05-16 11:26) [10]


> Также подобное иногда случается при РЕДАКТИРОВАНИИ модуля
> - вываливаются часы и та же истоирия с памятью.

Ну, тут можно посоветовать отключить все опции Code Insight - тогда он не будет делать прекомпиляцию во время редактирования. А вообще это насилие над компилятором. Что он тебе сделал-то?


 
StriderMan ©   (2007-05-16 11:35) [11]


> DrPass ©   (16.05.07 11:26) [10]
>  А вообще это насилие над компилятором. Что он тебе сделал-то?

Просто ему не повезло попасть в мои мозолистые руки :)


> SpellCaster   (16.05.07 11:22) [9]
> Гм, а что мешает хранить скрипт в отдельном файле

лишние файлы не хочется плодить, но если ничего не останется другого - придется так. на протяжении многих версий все компилировали в экзешник, и теперь менять подход как-то не улыбается.


 
StriderMan ©   (2007-05-16 11:56) [12]


> clickmaker ©   (16.05.07 11:21) [8]
> SQL скрипт в виде нее оформить

как говорится, те де яйца только в профиль :)

объясню подробнее.

у клиента есть база данных со структурой версии Х
программа должна отконвертить ее до версии Y. Для этого существует некий скрипт X->Y.

если делать ХП то возникает вопросы:
1. ХП надо сначала создать в базе версии Х, для этого скрипт все равно надо как-то в нее передать
2. насколько я знаю, изменять метаданные из ХП нельзя (FireBird 1.5).
3. В скрипте иногда делается RECONNECT. Без него не все операции коректно можно выполнить.


 
StriderMan ©   (2007-05-16 12:05) [13]

гы, в начинающие загнали :)
значит баги в Delphi теперь в начинающих обсуждаются?
Не спорю, такие константы - это экстремально, но хелп ничего не говорит о том что их не стоит использовать. с другой стороны - 300 кб это смешно по современным меркам.

а между тем кроме внешних файлов дельного решения никто не подсказал.


 
Jeer ©   (2007-05-16 12:06) [14]


> на протяжении многих версий все компилировали в экзешник,
>  и теперь менять подход как-то не улыбается.


Стратегическая ошибка.


 
StriderMan ©   (2007-05-16 12:09) [15]


> Jeer ©   (16.05.07 12:06) [14]
> Стратегическая ошибка.

просто раньше скрипты были на порядок меньше.



Страницы: 1 вся ветка

Текущий архив: 2007.06.03;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.061 c
8-1158333400
ruzzz
2006-09-15 19:16
2007.06.03
Вывод мультипликации (спрайтов) в DrawGrid


8-1158909536
ZSergey
2006-09-22 11:18
2007.06.03
Как победить мерцание JPG при перемещении


2-1179185998
delphino
2007-05-15 03:39
2007.06.03
Не могу изменить запись в главной таблице


8-1157826089
Voper
2006-09-09 22:21
2007.06.03
Сохранение картинок в 1 файл


4-1167029043
leonidus
2006-12-25 09:44
2007.06.03
Копирование выделенного текста в буфер