Форум программистов, компьютерный форум, киберфорум
Теория программирования
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 09.12.2009
Сообщений: 13

Хранение кода в базе данных - как

02.03.2007, 23:42. Показов 2959. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Хочу хранить код (модуль) в базе данных.
Код представляет собой набор функций.
Я передаю в вычислитель ссылку на коллекцию глобальных переменных и запускаю одну из функций модуля, установив ей параметры.
Каким способом добиться максимальной производительности (хочется хранить уже скомпилированный код)?
Код - простейший.
В основном это обращения к методам других объектов, конструирование объектов (список доступных классов опять же в коллекции глобальных переменных), арифметические и строковые операции, ветвления.
То бишь хочется такого: когда я создаю некий объект, я залажу в базу данных (или кэш) и в переменную Code этого объекта заношу уже скомпилированный код этого объекта.
Далее, когда идет обращение к методу например Test() этого объекта, нужно чтобы вызвался метод Test этого объекта.

Или другой, более конкретный пример.
Например я описал классы для базовых элементов - документов, справочников, регистров накопления и т.д.
Допустим я объявляю новый класс справочника номенклатуры Reference_Goods, наследуемый от класса справочники Reference.
Так вот, конкретные вопросы:
1. Как мне сделать, чтобы при выполнении кода я мог сконструировать экземпляр этого класса, т.е. где должно быть размещено хранилище классов.
2. Можно скомпилировать только этот класс (DLL), не перекомпилируя весь код приложения (EXE). То бишь вообще можно компилировать все классы отдельно, а
3. Как мне объявлять в коде обращение к методам класса, если класс неопределен? Использовать метод, который возвращает имя класса и преобразовывать к этому классу или можно как-то прозрачнее реализовать?
for each el in collection do
Msg(Convert(el, el.GetType()).GetShtrihCode());
next
а хочется просто:
for each el in collection do
el.GetShtrihCode();
next
Есть ли в Pascal /delpy нетипизированный объект как в 1С?
То бишь если x - variant, то как программа при этапе выполнения (а не компиляции) поймет как ей выполнять метод X.PRINT(), даже если этот метод действительно есть у объекта Х?
И сильно ли будет тормозить такой нетипизированный объект.
А как отыграть трюк 1С x["Print"](), т.е. вызов метода по имени?
4. Желательно, чтобы приложение и код пользовательских классов были написаны на одном языке, если я буду использовать Pascal, а разрабатывать приложение в Delpy, смогу ли я достать свободно распространяемый небольшого объема компилятор, чтобы компилировать только пользовательские классы? Основное приложение уже будет скомпилировано.
5. Учитывая, что скорее всего это все будет под KYLYX, те же вопросы и под Linux.
То есть в идеале я хочу иметь набор откомпилированных классов:
Application, Documents, References, Document_Invoiceocuments, Document_Incomeocuments, Reference_Goods:References
Нужно их как-то объединить, чтобы можно было создавать любой из этих классов динамически и обращаться к свойствам и методов этих классов.
То бишь работа приложения начнется с создания класса Application.
Метод Application:OnStart может выглядеть так
S=New Reference_Users; //Создаем класс справочника
//Как вариант можно так
//S=References.Create("Users");
//где References - глобальная переменная, хранящая экземпляр класса справочники, аналог Справочники 1С80
R=S.SearchByName(This.CurrentUserName); //Ищем по наименованию
//Если не найден, создаем справочник пользователя
If R=Nothing Then
SO=S.CreateNew();
SO.Name=This.CurrentUserName; //Даем этому справочнику имя пользователя.
SO.Save();
S=SO.Link;
EndIF
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.03.2007, 23:42
Ответы с готовыми решениями:

Хранение html кода в базе данных - стоит ли?
Заинтересовал один интересный подход к сайтостроению - хранение кода сайта в базе данных. Кто-то умудряется впихнуть в БД едва ли не весь...

Подскажите, как лучше реализовать хранение в базе следуюющих данных...
Как какова должна быть структура для хранения цен которые зависят от размеров. К примеру для одного товара цена такая ширина 1 ...

Хранение данных пользователя(инф-ию,ограничений,разрешений) в Базе Данных, нужен совет
Здравствуйте, подскажите пожалуйста в какой форме лучше хранить в БД информацию о пользователях, их ограничения и разрешения на...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.03.2007, 23:42
Помогаю со студенческими работами здесь

Хранение заказа в базе данных
Здравствуйте! Пишу движок для интернет-магазина и вот возникла заминка с хранением заказа в БД. А именно: -хранить в БД id...

Хранение данных в базе Access
Здравствуйте, пишу программу в Delphi 7. Связь с базой из Access. База простая, без связей даже. Программа чисто бухгалтерская. В чем суть...

Хранение DateTime в базе данных
В таблице определен столбец типа DATETIME, через DataRow я успешно получаю, устанавливаю его значения. Теперь задача состоит в том, чтобы...

Хранение картинок в базе данных
Я прочитал, что это плохая практика. Рекомендуют хранить пути к картинкам. Вопрос заключается в том, как этот путь извлекается и передается...

Хранение матриц в базе данных
Кто-нибудь может подсказать, в каком формате лучше хранить в базе данных ( MS SQL) набор матриц размером n X m ,где значени n и m разные...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru