|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Вызов функции из базы данных
Возникла проблема.
Название функции внесено в поле в виде строки. Как ее запуститить? |
#2
|
||||
|
||||
Цитата:
Код:
if AnsiUpperCase(...FieldByName('FuncName'))='SOMEFUNC' then SomeFunc(....); |
#3
|
|||
|
|||
А через процедурные типы нельзя?
|
#4
|
|||
|
|||
в принципе, можно, но тебе все-равно надо поставит в соответсвие название и собственно функцию.
Можно пойти немного другим путем. Создать класс, где находятся эти функции. В модуле указать директиву "компилировать с RTTI". вот тогда можно читать через RTTI список методов класса и вызывать его в зависимости от того, что указано в БД. Тут проблема другого рода - а что ты будешь делать с параметрами? Если их кол-во и тип у функций не одинаково, то их надо упаковывать в массив и передавать функции, а она будет уже их разбирать внутри (как пример - функция format). |