ExternalDBase.ExecuteInternalFunction
| ExecuteInternalFunction (Исполнение функции в контексте текущей внешней базы данных) | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||
Функция позволяет получить выполнить функцию, не привязанную к объекту базы данных, однако, работающую с базой данных для текущей базы данных. Обычно функция используется для доступа к функциям работы с базой данных без указания объекта БД (к примеру, BeginTransaction и пр.), при этом функции, содержащие объекты (к примеру, MassLoadObjects) будут корректно работать и без использования этой функции. Также функция может использоваться для доступа к файлам удаленного сервера (см. пример ниже), это могут быть таблицы, исполняемыые файлы, картинки и пр. Функция не умеет работать с методами объектов, поэтому, если необходимо вызвать метод объекта в контексте внешней базы данных, можно воспользоваться функциями Exec или Eval.
Синтаксис
ExternalDBase.ExecuteInternalFunction:(<Имя функции (STRING)>,<Аргумент 1>,<Аргумент 2>...):<Результат выполнения функции>
Аргументы
<Имя функции (STRING)>- Задает имя простой внутренней функции, не являющейся методом объекта.<Аргумент ?>- (необязательный аргумент) - Задают аргументы исполняемой функции.
Возвращаемое значение
Возвращает результат, который возвратила исполняемая функция.
Примеры
//Пример вызова функций, для работы перечислений файлов в папке внешней базы данных.
db2:=exdb.create();
db2.Connect("127.0.0.1:13521:TCPPassword","User","Password");
Путь:="Temp\";
аФС:=File.Create();
db2.ExecuteInternalFunction("Exec","аФС.FindOpen(Путь+""*.*"")");
While db2.ExecuteInternalFunction("Eval","аФС.FindNextFile()")<>"" Do
Файл:=Trim(аФС.FileName);
Message(Путь+Файл);
EndDo;