Close #516, #502: XCA remote database documentation

Create/copy from README.md documentation about remote databases.
Add Help button to Remote database dialog.

Extend documentation in the Windows msi installer
This commit is contained in:
Christian Hohnstaedt 2024-02-24 21:30:42 +01:00
parent 2785376689
commit 45253fae99
4 changed files with 71 additions and 10 deletions

View File

@ -2,6 +2,64 @@
Database
========
.. index:: remote_db (remote_db)
.. _remote_database:
Remote Databases
----------------
XCA supports connections to network databases. Tested engines are:
- MariaDB / mySQL
- PostgreSQL
- Microsoft SQLserver
Table prefix
''''''''''''
The table prefix can be used to store more than one XCA database in the same
remote database.
Database Drivers
''''''''''''''''
The SQL backend drivers provided by the manufacturer of the database must be
installed additionally to the Database support in XCA.
Linux
.....
The backend drivers are provided by your distribution:
- **Debian**: *libqt6sql6-psql*, *libqt6sql6-mysql* or *libqt6sql6-odbc*.
- **RPM**: *libqt6-database-plugin-pgsql*, *libqt6-database-plugin-mysql*,
*libqt6-database-plugin-odbc*
They should pull in all necessary dependencies.
Apple macos
...........
- **PostgreSQL**: Install the https://postgresapp.com/
- **ODBC**: It requires the /usr/local/opt/libiodbc/lib/libiodbc.2.dylib.
When installing unixodbc via brew the library must be symlinked from
/opt/homebrew/Cellar/libiodbc/3.52.16/lib/libiodbc.2.dylib
- **MariaDB**: Probably via ODBC ?
Windows
.......
- **PostgreSQL**: https://www.enterprisedb.com/downloads/postgres-postgresql-downloads
(Commandline tools are sufficient). Add the bin directory of the Postgres
installation directory to your PATH (C:\\Program Files\\PostgreSQL\\16)
- **ODBC**: Use the *ODBC Datasources 64bit* app to configure the SQL Server
If the data source is configured completel, only the matching DSN
- **MariaDB (MySQL)**: Install the Plugin from here:
https://github.com/thecodemonkey86/qt_mysql_driver. Select the MinGW variant
and install it as documented.
.. _extracting-items:
Extracting items

View File

@ -33,23 +33,20 @@
</Component>
</DirectoryRef>
<FeatureGroup Id="DatabaseGroup">
<Feature Id="Databases" Title="Database Drivers"
Description="All remote database drivers. The file based SQLite driver will be always installed." Level="1">
<Feature Id="Databases" Title="Remote Database Drivers"
Description="QT remote database drivers. Additional DLL from the manufacturer are required. See https://github.com/chris2511/xca" Level="1">
<Feature Id="SqlOdbc" Title="ODBC SQL Driver" Level="1"
Description="Access to ODBC databases like Microsoft SQL Server">
Description="Access to ODBC databases sources like Microsoft SQL Server. This driver requires no additional DLL from Microsoft.">
<ComponentRef Id="Cqsqlodbc" />
</Feature>
<Feature Id="SqlPostgres" Title="PostgreSQL Driver" Level="1"
Description="Native support for PostgreSQL databases. Contains 3rd party DLLs">
Description="Additional PostgreSQL Commandline Tools required from: https://www.enterprisedb.com/downloads/postgres-postgresql-downloads">
<ComponentRef Id="Cqsqlpsql" />
</Feature>
<Feature Id="SqlMariaDB" Title="MariaDB / mySQL Driver" Level="1"
Description="MariaDB support requires the MinGW variant of the https://github.com/thecodemonkey86/qt_mysql_driver ">
</Feature>
</Feature>
</FeatureGroup>
<DirectoryRef Id="sqldrivers">
<Component Id="Cqsqlpsql" Guid="526161ae-1023-411e-b7a1-747c93923b31">
<File Id="qsqlpsql.dll" Source="sqldrivers/qsqlpsql.dll"/>
</Component>
</DirectoryRef>
</Fragment>
</Wix>

View File

@ -124,6 +124,9 @@
<Component Id="Cqsqlodbc" Guid="c5dca3b3-d6f1-4012-8108-5c7516bd48a9">
<File Id="qsqlodbc.dll" Source="sqldrivers/qsqlodbc.dll"/>
</Component>
<Component Id="Cqsqlpsql" Guid="526161ae-1023-411e-b7a1-747c93923b31">
<File Id="qsqlpsql.dll" Source="sqldrivers/qsqlpsql.dll"/>
</Component>
</DirectoryRef>
<DirectoryRef Id="styles">

View File

@ -12,6 +12,7 @@
#include "MainWindow.h"
#include "OpenDb.h"
#include "Help.h"
#include "XcaWarning.h"
#include "lib/base.h"
#include "lib/dbhistory.h"
@ -110,6 +111,8 @@ OpenDb::OpenDb(QWidget *parent, const QString &db)
driver_selected();
connect(dbType, SIGNAL(currentIndexChanged(int)),
this, SLOT(driver_selected()));
mainwin->helpdlg->register_ctxhelp_button(this, "remote_db");
}
QString OpenDb::getDbType() const