ExternalDBase.ExecuteInternalFunction

From SunFlurry wiki
Jump to: navigation, search
  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;