tilestorage_dbms
External tile storage for SAS Planet, using a database backend via ODBC
- Active · last change 10-1-2025
- ★ 2 on GitHub
README
Настройка и использование TileStorage_DBMS.dll
Это руководство описывает процесс установки и настройки TileStorage_DBMS.dll для работы с программой SASPlanet.
1. Установка
- Файл
TileStorage_DBMS.dllнеобходимо поместить в корневую папку с исполняемым файломSASPlanet.exe. - Рядом с
TileStorage_DBMS.dllсоздайте и настройте файлTileStorage_DBMS.ini, содержащий параметры подключения к вашей СУБД.- Важно: Настройки в файле
TileStorage_DBMS.iniдолжны быть актуальными для вашей системы, а не скопированными из примера.
- Важно: Настройки в файле
- В папке 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 файл и установите параметр:
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):
* `DSN=PostgreSQL_OdbcW` ??? ???????????????? ?????? ???????????????????? DSN.
* `UID=sa` ??? ?????? ???????????????????????? (??????????).
* `PWD=123456` ??? ????????????.- Для прямого подключения через строку (когда
$ODBC_ConnectWithParams=1):
* ?????????? ???????????????????????? ?????????? ??????????????????, ?????????????????????? ?????? ???????????????????????? ???????????? ?????????????????????? ??????????????????.
* **??????????????:**
```ini
DRIVER={SQL Server Native Client 10.0}
SERVER=LOCALHOST
Database=sas_db
trusted_connection=yes
Mars_Connection=yes
```Внутренние параметры
Внутренние параметры начинаются с символа $ и обрабатываются самой DLL, не передаваясь в драйвер СУБД.
$ODBC_ConnectWithParams=0
* ???????????????????? ???????????? ?????????????????????? ?????????? ODBC.
* `0` (???? ??????????????????): ?????????????????????? ?????????? `System DSN` ?? ???????????????????????????? ???????????????????? `DSN`, `UID`, `PWD`.
* `1`: ?????????????????????? ?????????? `ConnectionString`, ???????????????????????????? ???? ???????????? ???????????????????? ?? ???????????? (`DRIVER`, `SERVER` ?? ??.??.).$PWD_Save=Lsa
* ?????????????????????? ????. ?? ?????????? [`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
* ?????????????????? ?????????????????????????? ?????????????????? ?????????????????? ???????????????????? (??????????????) ?????????? ????????????????????????.
* `_ALT` ?? ?????????? ?????????????????? (`$LOAD_LIBRARY_ALT`) ???????????????? ???????????????????????????? ???????????????? ???????????? ?????????????????? ??????????????????: ?????? ?????????? ???????????????? ?? ?????? ???? ??????????, ?????? ?????????????????? ?????????????????? DLL.
* ?????? `_ALT` (`$LOAD_LIBRARY`) ???????????????????????? ?????????????????????? ?????????????????? ???????????????? ????????????.Параметры секционирования
Параметры, отвечающие за секционирование хранилища, начинаются с префикса $TSS_. Их подробное описание находится в файле TSS.txt.

