Главная страница
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.055 c
2-1179156321
Ski1
2007-05-14 19:25
2007.06.03
как типу PAnsiChar присвоить тип String


2-1179237241
snakecatcher
2007-05-15 17:54
2007.06.03
Мерцание в TImage


15-1178362347
ArtemESC
2007-05-05 14:52
2007.06.03
Шахматы...


6-1164279691
Warstone
2006-11-23 14:01
2007.06.03
Определения PID процесса, открывшего сокет


2-1179343610
WebSQLNeederr
2007-05-16 23:26
2007.06.03
Как добавить в строку одинарные ковычки