Обновлено 26.08.2019

Функции для работы с БД

Функции для работы с БД в алфавитном порядке:

  1. Append([Table, Owner]) или Insert([Table, Owner])
  2. Добавить пустую запись в таблицу Table. Возвращаемое значение - цифровое (id записи)

    Table - имя таблицы БД

    Owner - владелец записи для подчиненных таблиц

  3. bof([Table])
  4. Проверяет выполнение условия "начало файла" для таблицы базы данных. Возвращаемое значение - логическое

    Table - имя таблицы БД

    Функция возвращает значение "истина" (.T.) при попытке установки указателя записи перед первой логической записью файла базы данных.

  5. DataBase(Mode)
  6. Вернуть параметры БД, где Mode:

    name - имя БД

    host - имя хоста

    port - номер порта

  7. DecField(Field[,Table])
  8. Вернуть количество десятичных (дробных) разрядов поля Field в таблице Table. Возвращаемое значение - числовое

    Field - имя поля

    Table - имя таблицы БД

  9. еof([Table])
  10. Проверяет выполнение условия "начало файла" для таблицы базы данных. Возвращаемое значение - логическое

    Table - имя таблицы БД

    Функция возвращает значение "истина" (.T.) при попытке установки указателя записи перед первой логической записью файла базы данных.

  11. Eval(Field[,Table])
  12. Расчитать значение поля базы данных. Возвращаемое значение - цифровое, символьное, логическое или дата

    Field - имя поля

    Table - имя таблицы

    Если параметр Table отсутствует, функция Eval возвращает информацию для таблицы в текущей рабочей области.

  13. Find(Where, Table)
  14. Найти по условию <Where> запись в таблице <Table>, возвращает <Id> найденной записи или 0, если запись не найдена. Возвращаемое значение - цифровое.

    Отличие от функции <Locate> в том, что функции <Find> не открывает таблицу <Table> для дальнейшей работы с полями таблицы, а только возвращает <Id> найденной записи.

  15. FindRecord(Table, Field, Value)
  16. Поиск в таблице "Table" записи по условию "Field"="Value". Возвращаемое значение - логическое.

    Table - имя таблицы

    Field - поле поиска

    Value - значение поиска

  17. Go([вырЦ,Table])
  18. Позиционирует указатель записи на запись с id=вырЦ. Возвращаемое значение - цифровое, номер записи позиционирования.

    вырЦ - физический номер записи, если параметр отсутствует или вырЦ=0, то происходит позиционирование на начало файла. Если вырЦ=999999999, то происходит позиционирование на конец файла

  19. GoBottom([Table])
  20. Позиционирует указатель записи на конец таблицы. Возвращаемое значение - цифровое, ID записи позиционирования.

  21. GoTop([Table])
  22. Позиционирует указатель записи на начало таблицы. Возвращаемое значение - цифровое, ID записи позиционирования.

  23. Locate(Where, Table)
  24. Найти по условию <Where> запись в таблице <Table>, возвращает Id найденной записи. Возвращаемое значение - цифровое.

    Отличие от функции <Find> в том, что функции <Locate> открывает таблицу <Table> для дальнейшей работы с полями таблицы.

  25. Query(Function, Table[, Where]])
  26. Function=”Count / Delete / WhereAdd”. Функция возвращает количество записей SQL-запроса

    • “Count” - подсчитать количество записей по условию “Where”;
    • “Delete” - удалить записи по условию “Where”;
    • “WhereAdd” - добавить условие выборки “Where” к уже существующему условию выборки. Это применимо для варианта отчета “До цикла-В цикле-После цикла” в алгоритме “До цикла”. Здесь можно дополнить условие выборки, которое сформировала программа, новыми условиями в зависимости от данных диалогового окна.
  27. Query('SQL-request')
  28. SQL-request - произвольный SQL-запрос <SELECT>. Функция возвращает количество записей SQL-запроса

    *Пример: получить список оплат по лицевому счету, сортировка - по убыванию даты, acc.id - идентификатор лицевого счета
    *Формируем текст SQL-запроса:
    Query='select * from `pay`'
    Query=Query+' where `idowner`='+alltrim(str(acc.id,10)
    Query=Query+' order by `date` desc'
    *Выполнить SQL-запрос:
    Pay_count=query(Query)
    ListPay=''
    *Цикл по записям SQL-запроса: список оплат по лицевому счету в формате "Сумма (Дата)"
    do while !eof('pay')
    ListPay=ListPay+alltrim(str(pay.Sum,10,2))+' ('+dtoc(pay.Date)+'), '
    skip(1,'pay')
    enddo
  29. NameEnum(Alias, Value[, Field])
  30. Вернуть значение элемента перечисления Alias по значению Value: функция позволяет узнать значение элемента перечисления по его коду. Возвращаемое значение - символьное

    Alias - Идентификатор перечисления

    Value - Значение элемента

    Field - имя элемента перечисления, по умолчанию "Name"

  31. NameItem(Id,Table[,Field])
  32. Вернуть значение элемента Field в таблице Table по коду Id: функция позволяет узнать значение элемента справочника по его коду. Возвращаемое значение - символьное

    Id - Код элемента

    Table - имя таблицы

    Field - имя элемента таблицы, по умолчанию "Name"

  33. RecCount([Table])
  34. Возвращает число записей активного файла базы данных. Возвращаемое значение - числовое

    Table - имя таблицы

  35. RecNo([Table])
  36. Возвращает номер текущей записи активного файла базы данных. Возвращаемое значение - числовое

    Table - имя таблицы

  37. Replace ‹Field› with ‹Выр›
  38. Замещает значение указанного ‹Field› значением, указанным в виде ‹Выр›. ‹Field› всегда задается в виде Алиас.Поле.

    Например: Replace accounts.code with "0000000001" - в поле "code" таблицы "accounts" записать значение "0000000001".

  39. RootItem(Id, Table)
  40. Вернуть код корневого элемента в таблице "Table" по коду "Id". Возвращаемое значение - числовое

    Id - Код элемента

    Table - имя таблицы

  41. LenField(Field[,Table])
  42. Вернуть длину поля Field в таблице Table. Возвращаемое значение - числовое

    Field - имя поля

    Table - имя таблицы

  43. IsField(Field[,Table])
  44. Проверяет наличие поля Field в таблице Table. Возвращаемое значение - логическое

    Field - имя поля

    Table - имя таблицы

  45. Seek(Value [,Table, Field])
  46. Выполняет поиск значения Value в файле, заданом Table по полю поиска Field. Возвращаемое значение - логическое, истина .t. - при удачном поиске, ложь .f. - при неудачном поиске

    Value - значение поиска

    Table - имя таблицы

    Field - поле поиска, по умолчанию ID

  47. Select(Table[, Where, Sort, Limit])
  48. Функция устанавливает текущую рабочую область (алиас) как Table.

    Кроме этого, если задано 2 и более параметров, функция выполнит SQL-запрос вида “select * from ‹NameTable› where ‹Where› order by ‹Sort› limit ‹Limit›”. Если задан только один параметр, то предполагается, что SQL-запрос уже выполнен. Функция возвращает количество записей SQL-запроса.

    Table - имя таблицы

    Where - условие выборки запроса

    Sort - условие сортировки запроса

    Limit - ограничение на количество записей

    Важно отметить, что если условие выборки запроса Where отсутствует, т.е. выбираются все записи таблицы, то в этом случае для выполнения SQL-запроса необходимо указать параметр Where в виде пустой строки.
    *Пример: получить список ИПУ по лицевому счету по услуге с кодом 5 (ХВС), acc.id - идентификатор лицевого счета, сортировка - код услуги+порядковый номер ИПУ.
    Count_count=select('counters','`idowner`='+alltrim(str(acc.id,10))+' and `service`=5','service,number')
    *Цикл по записям SQL-запроса:
    do while !eof()
    ...
    skip(1)
    enddo
    *Данная функция Select аналогична функции Query:
    *Формируем текст SQL-запроса:
    Query='select * from `counters`'
    Query=Query+'where `idowner`='+alltrim(str(acc.id,10))+' and `service`=5'
    Query=Query+'order by service,number'
    *Выполнить SQL-запрос:
    Count_count=query(Query)
  49. Skip([вырЦ,Table])
  50. Перемещает указатель записи в активном файле базы данных вперед или назад на вырЦ записей. Возвращаемое значение - логическое

    вырЦ - Количество записей, на которое перемещается указатель. Если вырЦ не указано, указатель перемещается вперед на одну запись.

  51. TypeField(Field[,Table])
  52. Вернуть тип поля Field в файле Table. Возвращаемое значение - символьное:

    С - символьное

    N - числовое

    D - дата

    L - логическое

    Fiekd - имя поля

    Table - имя таблицы

  53. UpdateTable(Table)
  54. Обновить содержимое таблицы <Table> на экране. Использовать функцию необходимо, если в результате расчета содержимое таблицы поменялось и это необходимо визуализировать на экране.

Наверх Задать вопрос