Функции, доступные как на клиенте, так и на сервере ( файл 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 ]