Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Catalog · How the catalog works
Anything · Lazarus or Delphi
Random projectRandom project

tilestorage_dbms

External tile storage for SAS Planet, using a database backend via ODBC

View on GitHub

Member rating

No ratings yet.

Sign in to rate this project.

README

Настройка и использование TileStorage_DBMS.dll

Это руководство описывает процесс установки и настройки TileStorage_DBMS.dll для работы с программой SASPlanet.


1. Установка

  1. Файл TileStorage_DBMS.dll необходимо поместить в корневую папку с исполняемым файлом SASPlanet.exe.
  2. Рядом с TileStorage_DBMS.dll создайте и настройте файл TileStorage_DBMS.ini, содержащий параметры подключения к вашей СУБД.
    • Важно: Настройки в файле TileStorage_DBMS.ini должны быть актуальными для вашей системы, а не скопированными из примера.
  3. В папке SASPlanet создайте подпапку с именем DBMS. В эту папку поместите скрипты для начального заполнения базы данных.
    • Имена файлов скриптов должны соответствовать формату TileStorage_DBMS.<XXX>.sql и TileStorage_DBMS.<XXX>.xql.
    • <XXX> в имени файла заменяется на аббревиатуру, соответствующую вашей СУБД:
      • MS: Microsoft SQL Server
      • ASE: Sybase ASE
      • ASA: Sybase ASA
      • ORA: Oracle
      • IFX: Informix
      • DB2: DB2
      • MY: MySQL
      • PG: PostgreSQL
      • MMR: MimerSQL
      • FB: Firebird

ВНИМАНИЕ!

Создание и настройку сервера баз данных, самой БД, дисковых устройств и прочих специфичных для СУБД компонентов библиотека DLL НЕ ВЫПОЛНЯЕТ!

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


2. Настройка кэша в SASPlanet

Для корректной работы необходимо изменить тип кэша в настройках карты в SASPlanet или в файле .zmp. Откройте нужный .zmp файл и установите параметр:

ini
CacheType=7

Если этого не сделать, тайлы будут сохраняться в файловую систему, а не в базу данных.


3. Описание файла TileStorage_DBMS.ini

Файл TileStorage_DBMS.ini использует стандартный INI-синтаксис с разделением на секции. Каждая секция описывает параметры для одного подключения. (Исключение составляют параметры секционирования, описанные в TSS.txt).

Структура пути к хранилищу

Путь к хранилищу тайлов в SASPlanet кодируется по трёхчастной схеме: S\D\T.

Пример: PostgreSQL_OdbcW\$\googlesat

  • S — Сервер (в примере: PostgreSQL_OdbcW).
  • D — База данных. Если СУБД не использует разделение на базы данных или это не требуется, используется символ-заполнитель $ (как в примере).
  • T — "Родовое" имя таблиц (в примере: googlesat). Указывает на группу таблиц, а не на одну конкретную.

Такая трёхчастная структура используется для унификации, даже если СУБД не имеет разделения на разные базы данных.

Идентификация подключения

Первые две части пути, S\D (например, PostgreSQL_OdbcW\$), служат для идентификации подключения с определённым набором настроек. Хотя формально подключение выполняется к серверу (S), настройки могут различаться для разных баз данных (D) на одном сервере. Таким образом:

  • Аутентификация выполняется в разрезе сервера (S).
  • Настройки подключения применяются в разрезе связки сервер/база (S\D).

Примечание: При использовании ODBC поддерживаются только системные источники данных (System DSN).


4. Параметры подключения

Параметры ODBC

Эти параметры используются при работе через ODBC. Не все из них обязательны для каждого типа СУБД.

  • Для подключения через DSN (когда $ODBC_ConnectWithParams=0):
pascal
* `DSN=PostgreSQL_OdbcW` ??? ???????????????? ?????? ???????????????????? DSN.
* `UID=sa` ??? ?????? ???????????????????????? (??????????).
* `PWD=123456` ??? ????????????.
  • Для прямого подключения через строку (когда $ODBC_ConnectWithParams=1):
pascal
* ?????????? ???????????????????????? ?????????? ??????????????????, ?????????????????????? ?????? ???????????????????????? ???????????? ?????????????????????? ??????????????????.
* **??????????????:**
  ```ini
  DRIVER={SQL Server Native Client 10.0}
  SERVER=LOCALHOST
  Database=sas_db
  trusted_connection=yes
  Mars_Connection=yes
  ```

Внутренние параметры

Внутренние параметры начинаются с символа $ и обрабатываются самой DLL, не передаваясь в драйвер СУБД.

  • $ODBC_ConnectWithParams=0
pascal
* ???????????????????? ???????????? ?????????????????????? ?????????? ODBC.
    * `0` (???? ??????????????????): ?????????????????????? ?????????? `System DSN` ?? ???????????????????????????? ???????????????????? `DSN`, `UID`, `PWD`.
    * `1`: ?????????????????????? ?????????? `ConnectionString`, ???????????????????????????? ???? ???????????? ???????????????????? ?? ???????????? (`DRIVER`, `SERVER` ?? ??.??.).
  • $PWD_Save=Lsa
pascal
* ?????????????????????? ????. ?? ?????????? [`PWD_Save.txt`](https://github.com/sasgis/tilestorage_dbms/blob/HEAD/doc/PWD_Save.txt).
  • $LOAD_LIBRARY_ALT=C:\Program Files\PostgreSQL\9.2\bin\libpq.dll
  • $LOAD_LIBRARY=C:\Program Files\Common Files\MariaDBShared\HeidiSQL\libmysql.dll
pascal
* ?????????????????? ?????????????????????????? ?????????????????? ?????????????????? ???????????????????? (??????????????) ?????????? ????????????????????????.
* `_ALT` ?? ?????????? ?????????????????? (`$LOAD_LIBRARY_ALT`) ???????????????? ???????????????????????????? ???????????????? ???????????? ?????????????????? ??????????????????: ?????? ?????????? ???????????????? ?? ?????? ???? ??????????, ?????? ?????????????????? ?????????????????? DLL.
* ?????? `_ALT` (`$LOAD_LIBRARY`) ???????????????????????? ?????????????????????? ?????????????????? ???????????????? ????????????.

Параметры секционирования

Параметры, отвечающие за секционирование хранилища, начинаются с префикса $TSS_. Их подробное описание находится в файле TSS.txt.