OPENDATASET
Материал из GB wiki
Версия от 14:31, 4 июня 2015; Alexey (обсуждение | вклад)
Открывает датасет при помощи вызова процедуры, либо путем импорта данных из файла (текстового, DBF, Excel, CDS)
Синтаксис
OPENDATASET(Имя процедуры,Датасет параметров,Имя датасета)
Аргументы
- Имя процедуры
- Строка, имя процедуры в БД, либо константа `file:` для импорта данных из файла, либо константа `copy:` для создания копии датасета параметров.
Имя процедуры может иметь вид GBDB://База/Процедура для осуществления распределенных вызовов либо GBTCP://Адрес:Порт/Процедура для вызова метода бизнес-сервера
- Датасет параметров
- Строка или ассоциативный массив, имя либо описание датасета, хранящего параметры процедуры либо параметры импорта
Параметры импорта файлов:
- FileType – строка, тип файла (TXT,CSV,DBF,XLS,CDS)
- FileName – строка, имя файла
- FieldsMap – строка, список формул вида имя,тип=выражение через «;», определяющих поля создаваемого датасета и их вычисление через поля исходного файла. Возможные значения для типа поля: I, F, D, S, B
- Filter – выражение для фильтрации строк исходного файла
- Separator – строка, разделитель полей в текстовом файле
- FieldCount – число, количество полей в текстовом файле
- Tabs – строка, список отступов полей в текстовом файле начиная с 0 через “;”
- Comment – строка, символ комментария в текстовом файле, при встрече которого в начале строки нужно эту строку игнорировать
- CP866 – строка, любое непустое значение означает, что текстовый файл в досовской кодировке
- WIN1251 – строка, любое непустое значение означает, что DBF файл в кодировке windows
- StartLine – число, номер строки с которой начинается импорт (первая строка – 0)
- EndLine – число, номер строки которой заканчивается импорт (отрицательное число означает что не нужно импортировать соответствующее число последних строк).
- StopIfEmpty – строка, любое непустое значение означает, что нужно остановить импорт, встретив пустую строку
- Sheet – строка, название листа для импорта из Excel
- Имя датасета
- Строка, определяющая имя создаваемого датасета. Если не задана, датасет не будет создан (используется, если нам не интересно, что вернула процедура).
Тип результата
- Нет
Примеры
OPENDATASET(
`Documents_PeriodRegistry`,
`DDoc`, `Res`
)
Не все процедуры возвращают массивы с данными. Но при этом некоторые процедуры могут возвращать различные сообщения о результатах своей работы, например "Обработано 1234 строк. Найдено и отмечено 110 товаров". Такое сообщение принято передавать в выходном датасете в поле Message, а вывести его можно так:
OpenDataSet( `MZ_ArticulsImport`, `dsTXT`, `dsRes` ), IfEmpty( dsRes.Message, 0, Info( dsRes.Message ) )