DatabaseProviderExportSupport
=======================================

.. currentmodule:: axioma.core.dp

.. class:: DatabaseProviderExportSupport

	Класс с описанием допустимых значений дополнительных параметров при экспорте в базу данных

	Унаследован от: :class:`~axioma.core.dp.ProviderExportSupport`

		.. py:attribute:: geometryColumnNameTag;

			Наименование геометрической колонки (Строковое)

		.. py:attribute:: sridTag;

			Значение SRID (Целое)

		.. py:attribute:: renditonColumnNameTag;

			Наименование колонки с оформлением (Строковое)

		.. py:attribute:: logFileTag;

			Наименование файла, куда будут прописываться успешно выполненные команды (Строковое)

		.. py:attribute:: errorFileTag;

			Наименование файла, куда будут прописываться команды по вставке записей, не принятых сервером (Строковое)

		.. py:attribute:: dropTableTag;

			Предварительно удалять существующую таблицу, если она присутствует в БД (Логическое)

		.. py:attribute:: createIndexTag;

			Создавать пространственный индекс (Логическое)

		.. py:attribute:: mapCatalogTag;

			Регистрация импортируемой таблицы в mapinfo.mapinfo_mapcatalog (Логическое)

		.. py:attribute:: geometryAsTextTag;

			Геометрию экспортировать как текстовые объекты (Логическое). Если указано True, то структура создаваемой таблицы будет создана из расчета хранения только текстовых объектов в формате MIF

		.. py:attribute:: fixGeometryTag;

			Исправление геометрического атрибута (Логическое). Если указано True, то производится проверка геометрии на валидность. Если она ошибочная, попробовать ее исправить.


DatabaseProvider
====================

.. currentmodule:: axioma.core.dp

.. class:: DatabaseProvider

	Провайдер для баз данных

	Унаследован от: :class:`~axioma.core.dp.DataProvider`, :class:`~axioma.core.dp.DatabaseProviderExportSupport`


		.. py:method:: DatabaseProvider(parent=None)

			Конструктор

			:param parent: Родительский объект
			:type parent: :class:`~PyQt5.QtCore.QObject` или :any:`None`

		.. py:method:: createDatabaseDefinition(host, dbName, userName, password, port = 0)

			Создание описания базы данных

			:param host: Наименование хоста
			:type host: :class:`str`
			:param dbName: Наименование базы данных
			:type dbName: :class:`str`
			:param userName: Имя пользователя для подключения к базе данных
			:type userName: :class:`str`
			:param password: Пароль
			:type password: :class:`str`
			:param port: Порт для подключения. Если не задано значение, то подставляется значение по умолчанию
			:type port: :class:`int`
			:return: Созданный объект описания
			:rtype: :class:`~axioma.core.dp.DatabaseDefinition`

		.. py:method:: defaultPort()

			Стандартный порт для подключения к конкретной СУБД

			:return: True, если да. В противном случае False
			:rtype: :class:`bool`
	
		.. py:method:: createDataSourceDefinition(typeId)

			Создание описания источника данных

			:param typeId: Строка с типом провайдера
			:type typeId: :class:`str`
			:return: Созданный объект описания
			:rtype: :class:`~axioma.core.dp.DataSourceDefinition`


			.. static std::shared_ptr<DatabaseDefinition> databaseDefinition(QString host, QString dbName, QString userName, const QString &password, int port);

		.. py:method:: linkedProvider()

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

			:return: Провайдер
			:rtype: :class:`~axioma.core.dp.DataProvider`


Пример использования:

.. literalinclude:: ../../../../../../examples/ExportDB.py
	:language: python
	:linenos:

