Работа с базами данных

Работа с базами данных недоступна вLite иStandard-модификациях

Geozem может получать информацию из внешних баз данных.

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

Возможность получения данных из базы данных позволяет пользователю самостоятельно разрабатывать приложения (например в MS Access), которые будут подготавливать данные в базе данных для последующей вставки их в отчеты Geozem. Примером такой программы может быть "Формирование межевого дела". Работа с базами данных возможна только в полной версии Geozem.

Параметры соединения

Функция Select для получения данных из базы данных

Функция SQL для выполнения произвольных SQL-запросов к базе данных

Функция ConnectionString для возврата строки подключения к базе данных

Параметры соединения

При первом обращении к базе данных появляется это окно. В этом окне дублируются параметры изнастроек. Здесь выбирается Сервер (папка с файлами дынных), имя пользователя, пароль (для серверных БД).

Установка параметра "Запрос параметров соединения" позволяет всегда показывать это окно при первом обращении к базе данных. Если этот параметр выключен, то в этом случае это окно будет показываться только когда соединение к базе данных не увенчалось успехом, и это позволяет изменить параметры для успешного соединения.

Параметр "Доступ к базе данных" управляет работой Geozem с базами данных.

Кнопка ОК подтверждает соединение с базой данных.

Функция Select для получения данных из базы данных

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

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

SELECT(<имя базы данных>,<запрос>)

<имя базы данных> -имя соединения к базе данных, может быть пустым – в этом случае по умолчанию используется первое соединение.

<запрос> - строка SQL-запроса оператора Select без слова "select"

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

Пример:

Select("name from koords.dbf where ((kx-1000,0) between -0.01 and 0.01) and ((ky-1000,0) between -0.01 and 0.01)")

Пример:

Пусть в имени файла закодирован кадастровый номер в формате: <код блока>_<номер квартала>-<номер участка>.<расширение файла>. Нужно найти полный кадастровый номер. Потом по кадастровому номеру найти в базе данных название блока и имя владельца этого земельного участка.

имяф=ExtractFileName([файл])
kn1=pos("_",[имяф])
kn2=pos("-",[имяф])
kn3=pos(".",[имяф])
kod3n=copy([имяф],1,[kn1]-1)
kod31=copy([имяф],[kn1]+1,[kn2]-[kn1]-1)
kod0=copy([имяф],[kn2]+1,[kn3]-[kn2]-1)
;Находимкадастровыйномер
кадастровый_номер="00:00:"+formatfloat("000",[kod3n])+" 00 "+formatfloat("00",[kod31])+":"+formatfloat("0000",[kod0])
zaprm3="from m3.dbf where (cast(kod3n as integer)="+formatfloat("0",[kod3n])+")"
kod2=Select("kod2 "+[zaprm3])
kod3=Select("kod3 "+[zaprm3])
;Находим название блока
назв_блока=Select("name3 "+[zaprm3])
zaprzemli="from zemli.dbf where (cast(kod2 as integer)="+formatfloat("0",[kod2])+")and(cast(kod3 as integer)="+formatfloat("0",[kod3])+")and(cast(kod31 as integer)="+formatfloat("0",[kod31])+")and(cast(kod0 as integer)="+formatfloat("0",[kod0])+")"
;Находим владельца земельного участка
владелец=Select("name10 "+[zaprzemli])

Функция SQL для выполнения произвольных SQL-запросов к базе данных

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

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

SQL(<имя базы данных>,<запрос>)

<имя базы данных> - имя соединения к базе данных, может быть пустым – в этом случае по умолчанию используется первое соединение.

<запрос> - строка SQL-запроса. Также можно использовать оператор SELECT – в этом случае функция возвращает значение первой строки первого столбца полученного набора данных с базы данных.

Функция ConnectionString для возврата строки подключения к базе данных

Эта функция позволяет вернуть строку подключения к базе данных.

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

ConnectionString (<имя базы данных>,<показ окна параметров соединения>)

<имя базы данных> - имя соединения к базе данных, может быть пустым – в этом случае по умолчанию используется первое соединение.

<показ окна параметров соединения> - признак (true, false) для принудительного вывода окна сапрашивающего параметры соединения.

Пример:

В дизайнере отчетов на вкладке данные кидаем компонент TfrxADODatabase, свойство name=bd.

Для того чтобы сделать дубликат соединения вводим скрипт (вкладка код):

begin
  bd.connected:=false;
  bd.Databasename:=ConnectionString("Northwind",true);
  bd.connected:=true;
end.

Теперь при запуске отчета будут скопированы настройки соединения из настроенных баз данных в отчет.