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