Проект "Зимородок"
Справочник по встроенным функциям
[на уровень вверх]

Функции, доступные как на клиенте, так и на сервере ( файл data_a.cpp )

Специальные функции

Id
Интерпретатор понимает строковое выражение как идентификатор
Аргумент: [строка]

Пример
товар.Id[ "цена" ]

Assign ( = )
Присваивание значения переменной (либо полю )
Аргументы: [LValue, любой]

Пример
ds = ReadAccess[ товары] ( Assign[ ds, ReadAccess[ товары ] )
ds.цена = 100

Примечание
У аргумента типа Dataset снимается флаг "временный"

While
Выполняет операции, пока истинно некоторое выражение
Аргументы: [ Boolean, Sequence ]

Пример
While[ Next[ ds], ds.цена = ds.цена * 2 ]
While[ i > 0, { i = i + 1, Next[ ds ] } ]

If
Выполняет операцию, если истинно выражение
Аргументы: [ Boolean, Sequence ] или [ Boolean, Sequence, Sequence ]
(во втором случае послендий аргумент выполняется, если выражение ложно - случай Else )

Пример
If[ a > b, a = a + b ]
If[ a > 0, { b = a + b, a = 0 }, { b = 0, a = 0 } ]

Point (.)
Получение значения поля
Аргументы: [ Dataset, идентификатор ] или [ Handle, идентификатор ]

Пример
x = ds.цена ( Assign[ x, Point[ ds, цена ] ] )
x = ds.товар.цена

Undefined
Возвращает булевское значение, в зависимости от того, определено или нет указанное поле в наборе данных
Аргументы: [ Dataset, идентификатор ]
Возвращаемое значение: Boolean

Пример
ds = Temporary[], If[ Undefined[ ds, field ], MessageBox[ "field undefined" ] ]

Pop
Извлечение значения из буфера обмена
Аргументы:нет
Возвращаемое значение: по смыслу

Пример
a = Pop[]
Seek[ ds, Pop[] ]
 

Push
Занесение значения в буфер обмена
Аргументы: [Любой]

Пример
Push[ ds.handle ]

StackSize
Возращает количество элементов в буфере обмена
Аргументы: нет
Возвращаемое значение: Numeric

Пример
If[ StackSize[] > 0, v = Pop[], v = 0 ]

Exit
Досрочный выход из запроса с/без сохранения
Аргументы: [Boolean]

Пример
Exit[ True[] ] - выход с сохранением
Exit[ False[] ] - выход без сохранения

Execute
Исполнение запроса из базы. Обмен параметрами через Push[] и Pop[]
Аргументы: [ Идентификатор ]

Пример
Push[ ds.handle ], Execute[ подсчет ]

Логические функции

Less (<)
LessEqual (<= )
Equal ( == )
NotEqual ( != )
GreaterEqual ( >= )
Greater (>)
Сравнение
Аргументы: Сравнение на равенство (==, != )- String, Date, Numeric, Handle
Сравнение ( <, <=, >, >= ) между String, Date, Numeric;
Возвращаемое значение: Boolean

Пример
If[ ( a > b || a < b || a == b ) && ( c <= d || c >= d ), MessageBox[ "Success" ] ]

IsKindOf
Сравнение типа переменной handle
Аргументы: [ Handle, идентификатор ]
Возвращаемое значение : Boolean

Пример
ds = HierarchicalAccess[ товары], Next[ds], If[ IsKindOf[ ds.handle, товары ], MessageBox[ "Таблица ТОВАРЫ не пуста" ] ]

True
False
Булевские константы
Аргументы: нет
Возвращаемое значение: Boolean

Пример
If[ True[], MessageBox[ "Success" ] ]

And (&&)
Or (||)
Булевские функции
Аргументы: [ Boolean, Boolean ]
Возвращаемое значение: Boolean

If[ ( True[] || False[] ) && True[], MessageBox[ "Success" ] ]

Not
Булевская функция
Аргументы: [Boolean]
Возвращаемое значение: Boolean

Пример
If[ Not[ False[] ], MessageBox[ "Success" ] ]

Функции перемещения по набору данных

Begin
End
Установка текущей позиции в наборе данных на начало/конец
Аргументы:[Dataset]

Пример
ds = ReadAccess[ товары ], End[ds]

Next
Prev
Перемещение текущей позиции в наборе данных на одну вперед/назад
Аргументы:[Dataset]
Возвращаемое значение: Boolean ( False, если стоим в конце/начале )

Пример
ds = ReadAccess[ товары ], End[ds], While[ Prev[ds], ds.цена = 100 ]

Seek
Перемещение текущей позиции в наборе данных по заданному указателю
Аргументы:[ Dataset, Handle ]
Возвращаемое значение: Dataset

Пример
ds = ReadAccess[ товары ], Next[ds], h = ds.handle, Next[ ds], Seek[ ds, h ]

BSearch
Бинарный поиск в отсортированном наборе данных
Текущее положение устанавливается в найденную позицию
или в ближайшую в смысле Insert
Аргументы: [ Dataset, Any ] или [ Dataset, { Any, Any, ... } ]
Возвращаемое значение: Boolean ( True если найдено )

Пример
ds = Order[ WriteAccess[ товары ], { наименование }], If[  BSearch[ ds, "штаны" ], ds.цена = 100 ]
ds = Order[ WriteAccess[ товары ], { артикул, наименование }], If[  BSearch[ ds, {"10012", "штаны" } ], ds.цена = 100 ]

Size
Количество элементов в наборе данных.
Действует только для временных наборов данных ( образованных функциями Temporary[], Select[...], ODBCImport[...] )
Аргументы: [ Dataset ]
Возвращаемое значение: Numeric

Пример
ds = Temporary[], Append[ds], If[  Size[ ds ] == 1 ] MessageBox[ "OK" ]

IsEmpty
Возвращает True[], если ссылка не определена
Аргументы: [ Handle ]
Возвращаемое значение: Boolean

Пример
ds = WriteAccess[ data ], Append[ds], If[ IsEmpty[ ds.ref ], MessageBox[ "Empty" ] ]

FieldCount
Количество полей в наборе данных
Аргументы: [ Dataset ]
Возвращаемое значение: Numeric

Пример
ds = WriteAccess[ data ], MessageBox[ Str[ FieldCount[ ds ] ] ]

FieldName
Возвращает имя указанного по номеру поля в наборе данных
Аргументы: [ Dataset, Numeric ]
Возвращаемое значение: String

Пример
ds = WriteAccess[ data ], c = 0, While[ c < FieldCount[ds], { MessageBox[ FieldName[ds, c ] ], c = c + 1 } ]

FieldType
Возвращает тип указанного по номеру поля в наборе данных
Аргументы: [ Dataset, Numeric ]
Возвращаемое значение: Numeric

Пример
ds = WriteAccess[ data ], c = 0, While[ c < FieldCount[ds], { MessageBox[ Str[ FieldType[ds, c ] ] ], c = c + 1 } ]

Элементарные функции

Plus (+)
Сложение
Аргументы: [Numeric, Numeric] или [String,String] или [Date,Numeric]
Возвращаемое значенис, соотв. Numeric или String или Date

Пример
a = 3 + ds.sum
b = "abc" + "def"
c = Day[DMY[ 1,1,2003] + 31]

Minus (-)
Вычитание
Аргументы: [Numeric,Numeric] или [Date,Numeric] или [Date,Date]
Возвращаемое значение, соотв. Numeric или  Date или Numeric

Пример
a = 0 - ds.sum
b = Day[DMY[ 1,1,2003] - 31]
c = Date[ "1.1.01" ] - Date[ "1.2.01" ] - 31

Mult (*)
Div (-)
Умножение, деление
Аргументы: [Numeric, Numeric]
Возвращаемое значение: Numeric

Пример
a = 3 + ( 5 * 6 ) / ds.sum

Round
Округление до заданного знака
Аргументы: [Numeric] или [Numeric, Numeric]
Возвращаемое значение: Numeric

Пример
If[ Round[ 0.16, 1 ] == 0.2, MessageBox[ "Success" ] ]

SubStr
Выделение подстроки
Аргументы: [String,Numeric] (от заданной позиции до конца)
или [String,Numeric,Numeric] (от заданной позиции на заданную длину)
Возвращаемое значение: String

Пример
If [ SubStr[ "abcd", 2 ] == SubStr[ "xabcde", 3, 2 ], MessageBox[ "Success" ] ]

TrimAll
Удаление пробелов в начале и конце
Аргумент: [String]
Возвращаемое значение: String

Пример
If[ TrimAll[ "   abc   " ] == "abc" ], MessageBox[ "Success" ] ]

WrapStr
Вставляет символы конца строки, отделяя участки заданной длины
Аргумент: [String, Numeric]
Возвращаемое значение: String

Пример
If[ WrapStr[ TrimAll[ "abc def" ] == "abc\ndef" ], MessageBox[ "Success" ] ]

StrStr
Поиск подстроки
Аргументы: [String,String]
Возвращаемое значение: Boolean

Пример
If [ StrStr[ "abcd", “bc” ], MessageBox[ "Success" ] ]

SubStr
Выделение подстроки
Аргументы: [String,Numeric] или [String,Numeric,Numeric]
Возвращаемое значение: String

Пример
If [ SubStr[ "abcd", 1, 2 ] == [ “bc” ], MessageBox[ "Success" ] ]

ToLower
Переводит строку в нижний регистр
Аргумент: [String]
Возвращаемое значение: String

Пример
If[ ToLower[ "Апрель" ] == "апрель" ], MessageBox[ "Success" ] ]

ToUpper
Переводит строку в верхний
Аргумент: [String]
Возвращаемое значение: String

Пример
If[ ToUpper[ "Апрель" ] == "АПРЕЛЬ" ], MessageBox[ "Success" ] ]

Explode
Навеяна функцией Explode в PHP.
По заданной строке создает массив, содержащий подстроки,
отделенные символами из второй строки
Аргумент: [String, String, Id]
Возвращаемое значение: Dataset

Пример
ds = Explode[ “abc;def”, “;”, f ], Begin[ds], Next[ds],
If[ ds.f == "abc" ], MessageBox[ "Success" ] ]

StrTr
Заменяет символы в строке 1, совпадающие с символами строки 2, на соответствующие символы строки 3
Аргумент: [String, String, String]
Возвращаемое значение: String

Пример
s = StrTr[ "ABC", "A", "D" ], If[ s == "DBC", MessageBox[ "Success" ] ]

Операции с датой

Date
Преобразование сторки в дату
Аргумент: String
Возвращаемое значение: Date

Пример
If[ Year[ Date[ "2.3.02" ] ] == 2002, MessageBox[ "Success" ] ]

DMY
Построение даты по числу, месяцу и году
Аргументы: [Numeric, Numeric, Numeric]
Возвращаемое значение: Date

Пример
If[ Date[ "2.3.2" ] == DMY[ 2, 3, 2002 ], MessageBox[ "Success" ] ]

Day
Month
Year
Получение числа, месяца, года заданной даты
Аргумент: [Date]
Возвращаемое значение: Numeric

Пример
d = Date[ "2.3.2" ], If[ Day[d] == 2 && Month[d] == 3 && Year[d] == 2002, MessageBox[ "Success" ] ]

LastDateOfMonth
Получение последней даты месяца относительно заданной даты
Аргумент: [Date]
Возвращаемое значение: Date

Пример
d = LastDateOfMonth[ Date[ "2.3.2" ] ], If[ Day[d] == 31 && Month[d] == 3 && Year[d] == 2002, MessageBox[ "Success" ] ]

Операции преобразования типов

Str
Преобразование числа, даты или ссылки в строку
Аргумент:[Numeric] или [Date] или [Handle] или [Numeric, Numeric]
Возвращаемое значение: String

Пример
If[ Str[ 5] + " " + Str[ Date[ "2.3.2" ] + " " + Str[ 4.6, 1 ] ] == "5 2.3.2 4.6", MessageBox["Success"] ]

Val
Преобразование строки в число
Аргумент: [String]
Возвращаемое значение: Numeric

Пример
If[ Val[ "5.5" ] == 5.5, MessageBox[ "Success" ] ]

Handle
Преобразование строки в ссылку
Аргумент: [String]
Возвращаемое значение: Handle

SumInWords
Запись числа словами (по-русски)
Аргумент: [Numeric]
Возвращаемое значение: String

Пример
If[ SumInWords[ 123] == "сто двадцать три", MessageBox[ "Success" ] ]

MonthNom
MonthGen
Имя месяца в именительном или родительном падежах
Аргумент: [Numeric]
Возвращаемое значение: String

Пример
If[ MonthNom[ 3 ] == "Март" && MonthGen[3] == "Марта", MessageBox[ "Success" ] ]

Функции доступа к базе и получения типа Dataset

ReadAccess
Доступ на чтение к таблице базы
Аргумент: идентификатор
Возвращаемое значение: Dataset

Пример
c = ReadAccess[ "товары" ], Next[c], MessageBox[ c.наименование ]

WriteAccess
Доступ на запись к таблице базы
Аргумент: идентификатор
Возвращаемое значение: Dataset

Пример
c = WriteAccess[ "товары" ], Next[c], c.наименование = "Покрышки"

HierarchicalAccess
Доступ на чтение к таблице базы и по очереди ко всем ее потомкам
Аргумент: идентификатор
Возвращаемое значение: Dataset

Пример
c = HierarchicalAccess[ "товары" ], While[ Next[c], MessageBox[ c.наименование ] ]

ReadIndexAccess
Доступ на чтение к индексной таблице
Аргумент: Blob
Возвращаемое значение: Dataset

Пример
c = ReadAccess[ накладная ], Next[c], cc = ReadIndexAccess[ c.детали ], Next[cc], MessageBox[ Str[ cc.цена ] ]

Примечание
Тип Blob используется сейчас исключительно для создания индексов через CreateLink

WriteIndexAccess
Доступ на запись к индексной таблице
Аргумент: Blob
Возвращаемое значение: Dataset

Пример
c = WriteAccess[ накладная ], Next[c], cc = WriteIndexAccess[ c.детали ], Insert[cc], cc.цена = 0

Примечание
Тип Blob используется сейчас исключительно для создания индексов через CreateLink

Temporary
Создание временной таблицы
Аргумент: нет
Возвращаемое значение: Dataset

Пример
c = Temporary[], Insert[c], c.field1 = "abc", c.field2 = 0

Функции работы с наборами данных

Insert
Вставить строку в набор данных после позиции курсора
Аргумент: Dataset
Возвращаемое значение: нет

Пример
с = WriteAccess[ товары ], Insert[c], c.цена = 100

Append
Добавить строку в конец набора данных
Аргумент: Dataset
Возвращаемое значение: нет

Пример
с = WriteAccess[ товары ], Append[c], c.цена = 100

Delete
Стереть текущую строку набора данных
Аргумент: Dataset
Возвращаемое значение: нет

Пример
с = WriteAccess[ товары ], Next[c], Delete[c], Next[c], c.цена = 100

Примечание 1
Одновременно удаляются все записи, содержащие текущую запись как ссылку

Примечание 2
Курсор остается между записями, и требуется выбрать Next[] или Prev[] для установки на строку

Clear
Удалить из набора данных записи в соответствии с заданными условиями
Аргумент: [Dataset, выражение]
Возвращаемое значение: нет

Пример
с = WriteAccess[ товары ], Clear[c, цена < 100 ]

Summate
Суммирует выражение из набора данных
Аргумент[ Dataset, выражение ]
Возвращаемое значение: Numeric

Пример
с = WriteAccess[ товары ], s = Summate[c, цена * количество ]

Функции, моделирующие SQL

Select
Выборка заданных полей из набора данных
Аргументы: [Dataset, { идентификатор или { выражение, идентификатор } }, выражение(необязательно) ]
Возвращаемое значение: Dataset

Пример
ds = Select[ ReadAccess[ товары ], { наименование, цена } ]
ds = Select[ ReadAccess[ товары ], { { цена * количество, сумма } }, артикул > 100 ]

Примечание
Курсор в отобранном наборе данных стоит на первой позиции

Order
Сортировка набора данных
Аргументы: [ Dataset, идентификатор ] или [ Dataset, { идентификатор, ... } ]
Возвращаемое значение: Dataset

Пример
ds = Order[ ReadAccess[ товары ], цена ]
ds = Order[ ReadAccess[ товары ], { цена, наименование } ]

Group
Группировка набора данных по совпадающим значениям полей
Аргументы: [Dataset, идентификатор или { идентификатор, ... },
{ { идентификатор, Sum/Number } или { выражение, Sum/Number, идентификатор } } (необязательно) ]
Возвращаемое значение: Dataset

Пример
ds = Group[ ReadAccess[ товары ], артикул ]
ds = Group[ ReadAccess[ товары ], { артикул, наименование }, {{ цена * количество, Sum, сумма }, {количество, Number } }]

Copy
Добавление записей в набор данных
Аргументы: [Dataset, Dataset]
Возвращаемое значение: Dataset

Пример
ds = Temporary[], Copy[ ds, ReadAccess[ товары ] ]
 

Функции, доступные только на клиенте ( файл int_a.cpp )

Функции пользовательского интерфейса

MessageBox
Выбрасывает сообщение
Аргументы: [ String ]
Возвращаемое значение: нет

Пример
MessageBox[ "OK" ]

ShowForm
Открывает окно ( содержимое окна должно быть определено заранее )
В окне есть по крайней мере кнопки OK и Cancel
Аргументы: [String] ( заголовок окна )
Возвращаемое значение: Boolean (OK или Cancel нажато)

Пример
s = "abc", EditString[s, "the string"], If[ ShowForm[ "the form" ], MessageBox[ "OK Pressed" ] ]

ShowModal
то же, что ShowForm, только окно модальное, т.е. все другие процессы блокируются

Примечание
ShowModal употребляется при вызове процесса внутри ShowForm ( при нажатии кнопки ),
в то время как при вызове процесса из меню создается независимый поток, и надо вызывать ShowForm

EditString
EditNumeric
EditDate
В форме, которая будет открыта, создается окно для редактирования
Аргуметы: [идентификатор(переменной), String( заголовок - необязательно ) ]

Пример
s = "abc", d = Date[ "1.1.02" ], n = 5, EditString[ s, "string" ], EditDate[d], EditNumeric[n], ShowForm[]

EditTable
В форме, которая будет открыта, создается окно для редактирования таблицы ( Grid )
Аргументы: [ идентификатор ( Dataset ), String (заголовок - необязательно ), выражение( условие отбора - необязательно ) ]

Пример
ds = Temporary[], Insert[ds], ds.f = "abc", EditTable[ ds, "Table", f == "abc" ], ShowForm[]

SetField
Определяется столбец в таблице, которая будет редактироваться
( вызывается после EditTable и перед ShowForm )
Аргументы: [ идентификатор ( имя поля ), String ( заголовок - необязательно ),
Numeric ( ширина - необязательно ), Dataset (обязательно когда поле типа Handle ),
выражение ( значение по умолчанию - необязательно ) ]

Пример
ds = ReadAccess[ товары ], EditTable[ ds ], SetField[ наименование ], SetField[ цена, "цена", 100, 0 ],
   SetField[ тип, ReadAccess[ типы ] ], ShowForm[]

Примечание
Если после EditTable следует хотя бы один SetField, то в таблице будут только поля, перечисленные
в SetField, иначе - все поля.

SetButton
Определяет дополнительную кнопку в форме, которая будет открыта
Аргументы: [ String ( надпись ), Sequence ( выражение для исполнения при нажатии ) ]

Пример
SetButton[ "Press me", { d = "aa", EditString[ d, "OK" ], ShowModal[] } ], ShowForm[]

Функции генерации отчетов

StartReport
StartWideReport
Знак начала генерации отчета, с ориентацией книжной/альбомной
Аргументы: нет
Возвращаемое значение: нет

Пример
StartReport[], ShowReport[]

SetAlignLeft
SetAlignCenter
SetAlignRight
Установка выравнивания в ячейках
Аргументы: нет
Возвращаемое значение: нет

Пример
StartWideReport[], SetAlignCenter[], Cell[ "abc", 30 ], Row[], ShowReport[]

SetFontSize
Установка размера шрифта в ячейках
Аргументы: [Numeric]
Возвращаемое значение: нет

Пример
StartWideReport[], SetFontSize[15], Cell[ "abc", 30 ], Row[], ShowReport[]

SetFontNormal
SetFontBold
SetFontItalic
SetFontBoldItalic
Установка типа шрифта в ячейках
Аргументы: нет
Возвращаемое значение: нет

Пример
StartWideReport[], SetFontItalic[], Cell[ "abc", 30 ], SetFontNormal[], Cell[ "def", 30 ], Row[], ShowReport[]

Cell
Определение ячейки отчета
Аргументы: [ String (содержание), Numeric (ширина) ]
Возвращаемое значение: нет

Пример
StartReport[], Cell[ "abc", 30 ], Row[], ShowReport[]

Row
знак, что текущий набор ячеек определяет строку
Аргументы: нет
Возвращаемое значение: нет

Пример
StartReport[], Cell[ "abc", 30 ], Cell[ "def", 30 ],  Row[], Cell[ "pqr", 30 ], Row[], ShowReport[]

Header
знак, что текущий набор ячеек определяет заголовок таблицы
( то есть печатается на каждой странице  )
Аргументы: нет
Возвращаемое значение: нет

Пример
StartReport[], Cell[ "abc", 30 ], Cell[ "def", 30 ],  Header[], Cell[ "pqr", 30 ], Row[], ShowReport[]

Frame
знак, что в текущей строке все ячейки должны быть в рамках
можно передать строку, содержащую символы “ltrb” ( left top right bottom ).
тогда линии будут только с тех сторон, где указано
Аргументы: нет или [ String ].
Возвращаемое значение: нет

Пример
StartReport[], Cell[ "abc", 30 ], Cell[ "def", 30 ],  Frame[], Header[], Cell[ "pqr", 30 ], Row[], ShowReport[]

PageFooter
установка низа страницы ( для печати номера )
сам номер подставляется через как у printf в Си
Аргументы: [String]
Возвращаемое значение: нет

Пример
StartReport[], i = 0, While[ i < 100, { i = i + 1, Cell[ "abc", 30 ], Row[] } ], PageFooter[ "Стр %d" ],  ShowReport[]

Fragment
вставка в отчет фрагмента на HTML. При этом в момент вставки
подменяются выражения, введенные тагом <S>, на их значение
Таблица сдвигается вниз на высоту фрагмента
Аргументы: [String]
Возвращаемое значение: нет

Пример
StartReport[], i = 0, Fragment[ "Trali Vali <S>i</S>" ], Cell[ "abc", 30 ], Row[],  ShowReport[]

PSHeader
вставка в отчет фрагмента на PostScript
Фрагмент при этом накладывается на все остальное и не виден на Preview
Аргументы: [String]
Возвращаемое значение: нет

Пример
StartReport[], Fragment[ "Trali Vali" ], PSHeader[ "30 30 moveto (abc) show" ],  ShowReport[]

ShowReport
открывается окно с подготовленным отчетом, отчет в виде HTML,
откуда можно отправить на печать
Аргументы: нет
Возвращаемое значение: нет

Пример
StartReport[], Cell[ "abc", 30 ], Cell[ "def", 30 ],  Frame[], Header[], Cell[ "pqr", 30 ], Row[], ShowReport[]

Функции альтернативной подготовки отчетов

CreateGrid
Создает таблицу по имени ресурса
Аргументы: [String]
Возвращаемое значение: нет

ShowGrid
Показывает подготовленную таблицу в отдельном окне
Аргументы: String заголовок окна ( необязательно )
Возвращаемое значение: нет

AddCells, AddHeader, AddFooter
Добавляет строки в таблицу по номерам строк ресурса. При этом вычисляются и подставляются значения переменных, определенных в ресурсе.
Аргументы: Numeric первая строка, Numeric последняя строка ( необязательно; по умолчанию берется одна строка )
Возвращаемое значение: нет

Пример
CreateGrid[ myres ], AddHeader[ 1 ], title = "ABC", AddCells[ 2, 5 ], ShowGrid[ "Report" ]

Функции обмена с сервером

KFConnect
Открывает сеанс связи с сервером.
Аргументы: [ String имя базы, String адрес сервера ( необязательно; по умолчанию localhost ) ]
Возвращаемое значение: нет

Пример
KFConnect[ "mybase", "192.168.0.4" ], KFClose[]

KFSend
Выполняет команду на сервере.
Обмен данными совершается через Push[] и Pop[]
Аргументы: [ Sequence ]
Возвращаемое значение: нет

Пример
KFConnect[ "mybase" ], Push[ 3 ], Push[ 4 ], KFSend[ { a = Pop[], b = Pop[], Push[ a + b } ], KFClose[], MessageBox[ Str[ Pop[] ] ]

KFClose
Завершает сеанс связи с сервером
Аргументы: [ Boolean результат (сохранить или нет ) ( необязательный; по умолчанию True[] )]
Возвращаемое значение: нет

Пример
KFConnect[ "mybase" ], KFSend[ { Clear[ WriteAccess[ товары ] ] } ], KFClose[ False[] ]

Функции обмена по ODBC

ODBCConnect
Устанавливается соединение с базой ODBC
Аргумент : [String]
Возвращаемое значение: нет

Пример
ODBCConnect[ "myfirst" ], ODBCSend[ "Create table ABC" ], ODBCClose[]

ODBCSend
Посылается команда SQL по ODBC
Аргумент: [ String ] или [ String, параметр ] или [ String, { параметр, ... } ]
Возвращаемое значение: нет

Пример
ODBCConnect[ "myfirst" ], ODBCSend[ "Insert into abc ( field0 ) values ( ? )", "abcdef" ], ODBCClose[]

ODBCImport
Посылается команда SQL по ODBC, которая возвращает набор данных
Аргумент: [ String ] или [ String, параметр ] или [ String, { параметр, ... } ]
Возвращаемое значение: Dataset

Пример
ODBCConnect[ "myfirst" ], ds = ODBCImport[ "Select * from ABC where field0 < ?", "abcdef" ], ODBCClose[]

ODBCClose
Завершается сеанс связи по ODBC
Аргументы: нет
Возвращаемое значение: нет

Прочие функции

Run
Выполняет новый запрос с созданием отдельного процесса
Аргументы передаются четез Push[] ( обратно - невозможно )
Аргумент: [идентификатор]
Возвращаемое значение: нет

Пример
Push[ "abc" ], Run[ mysecond ]
 
 


RATING ALL.BY