Функции отбора значений из внешних баз данных

Navigation:  »No topics above this level«

Функции отбора значений из внешних баз данных

Return to chapter overview

 

Функция dbf() позволяет осуществлять отбор данных из внешних баз данных формата dBASE.

Функция dbfwin() имеет параметры аналогичные параметрам функции dbf(). Эта функция используется для правильного чтения русскоязычных текстов (выполняет перекодирование текста в формат Windows).

 

Синтаксис функции:

dbf (arg1, arg2, arg3), где

arg1 - имя базы данных. Имя базы данных может быть задано текстовой константой, переменной или выражением.

arg2 - имя поля, из которого надо произвести отбор. Имя поля данных может быть задано текстовой константой, переменной или выражением.

arg3 - условие отбора. При задании условия можно использовать текстовые константы, переменные и выражения.

 

Например:

dbf("DBF_NAME", "COL1", "COL2 == 30")

Это означает: отобрать значение из базы данных DBF_NAME из поля COL1 при условии, что значение поля COL2 равно 30.

 

Примеры:

dbf($NAME, "COL1", "COL2 <= {GRM_VAR}")

dbf($NAME, "COL1", "TEXT = \"GRM_TEXT\"")

dbf("<*>DBF_NAME", "COL1","COL2 > 30")

В последнем примере перед именем БД может стоять последовательность символов <*>. Она означает, что БД с именем DBF_NAME будет искаться в той же директории, что и чертеж. То есть, при изменении пути вам не надо будет в Редакторе Переменных изменять имя БД во всех вызовах функции dbf().

 

Рекомендуется при создании чертежей, связанных с внешними БД, задавать имя БД с использованием последовательности символов "<*>". Это упростит вам работу с этими чертежами в дальнейшем.

 

Условие отбора при вызове функции dbf() является логическим выражением, соответствующим понятию фильтра в классической реляционной базе данных. Синтаксис условия (фильтра) соответствует требованиям dBASE. Его составными частями могут быть имена полей базы данных, константы, логические и арифметические операции, функции dBASE. Кроме этого, в фильтрах могут использоваться переменные системы T-FLEX CAD, а также логические операции Редактора Переменных. При использовании в фильтре переменных, они заключаются в фигурные скобки.

Тип возвращаемого функцией значения соответствует типу поля базы данных и может быть либо текстовым, либо вещественным.

 

Рассмотрим связь переменных с внешней базой данных на примере чертежа PROBA.

var_44

Создайте с помощью команды IDatabase внешнюю базу данных PROBA.DBF с полями AA, BB, CC, которые являются вещественными полями и текстовым полем DD.

i12

После этого в Редакторе Переменных для переменной C создайте список значений, совпадающих со значениями поля CC базы данных, а для остальных переменных введите следующие выражения:

i15

После выхода на экране отобразится:

var_54

Таким образом вы связали изображение чертежа со значениями переменных, которые хранятся во внешней БД. Теперь при изменении значения переменной C, значения остальных переменных будут выбираться из внешней базы данных.

В результате чертеж перерисуется в соответствии с отобранными из БД значениями переменных.

i16

var_56

 

Функция mdb() позволяет осуществлять отбор данных из внешних баз данных формата MDB.

Синтаксис  функции mdb (arg1, arg2, arg3, arg4), где

arg1 - имя базы данных. Имя базы данных может быть задано текстовой константой, переменной или выражением.

arg2 - имя таблицы в базе данных. Может быть задано текстовой константой, переменной или выражением.

arg3 - имя поля, из которого надо произвести отбор. Имя поля данных может быть задано текстовой константой, переменной или выражением.

arg4 - условие отбора. При задании условия можно использовать текстовые константы, переменные и выражения.

Например:

mdb ( "c:\\T-FLEX_USER.mdb", "USER", "ФИО", "Код={kod}" )

Это означает: отобрать значение из таблицы USER базы данных T-FLEX_USER из поля ФИО при условии, что значение поля Код равно значению переменной kod. Следует отметить, что последний операнд функции, задающий условие отбора записей, может быть записан в форме SQL запроса и должен соответствовать предложению "WHERE" команды "SELECT". Если при написании условия используются текстовые переменные, то выражение будет выглядеть следующим образом mdb ( "c:\\T-FLEX_USER.mdb", "USER", "ФИО", "Должность=\"{$Dol}\"" ).

 

Ввиду более медленного процесса получения информации из внешней базы данных использовать функции DBF () и MDB () следует только в тех случаях, где невозможно использование базы данных по ссылке на основе форматов “*.xls”и “*.txt”.

 

Смотри: Функции работы с переменными