Multiple thanks to both Alessandro and Etienne for helping me with this question. I owe you both a large cold beer (each !) next time we meet.

Med venlig hilsen / Kind regards

Bo Victor Thomsen

Den 10-01-2021 kl. 04:10 skrev Etienne Trimaille:
The connection API is indeed convenient for that :

metadata = QgsProviderRegistry.instance().providerMetadata('postgres')
connection = metadata.findConnection("the postgis connection name")
uri = QgsDataSourceUri(connection.uri())

Le sam. 9 janv. 2021 à 22:36, Alessandro Pasotti <[email protected] <mailto:[email protected]>> a écrit :

    Hi Bo,

    you may have a look to
    
https://qgis.org/pyqgis/master/core/QgsProviderRegistry.html?highlight=decodeuri#qgis.core.QgsProviderRegistry.decodeUri
    
<https://qgis.org/pyqgis/master/core/QgsProviderRegistry.html?highlight=decodeuri#qgis.core.QgsProviderRegistry.decodeUri>
    and encodeUri.

    Or better: the connections API
    https://qgis.org/pyqgis/master/core/QgsAbstractProviderConnection.html
    <https://qgis.org/pyqgis/master/core/QgsAbstractProviderConnection.html>



    On Sat, Jan 9, 2021 at 2:03 PM Bo Victor Thomsen
    <[email protected] <mailto:[email protected]>>
    wrote:
    >
    > Ok, this has me stumped.
    >
    > I know, that I can generate a database URI like this (example
    from cookbook):
    >
    > uri = QgsDataSourceUri()
    > # set host name, port, database name, username and password
    > uri.setConnection("localhost", "5432", "dbname", "johny", "xxx")
    > # set database schema, table name, geometry column and optionally
    > # subset (WHERE clause)
    > uri.setDataSource("public", "roads", "the_geom", "cityid = 2643")
    >
    > vlayer = QgsVectorLayer(uri.uri(False), "layer name you like",
    "postgres")
    >
    >
    > But I would like to use information from a already defined
    Datasource connection from the Datamanager dialog.
    >
    > I suspect, that there must be a
    "QgsSettingsConvertToUri_or_whatever_it_is_called()" function that
    uses a  QGS settings address  (ex. like
    "/PostgreSQL/connections/MyDatabase" for a Postgresql database
    connection)  as input and automatically convert the settings
    values to a URI string.
    >
    > Is there anyone, that can point me in the right direction ?
    >
    > --
    >
    > Med venlig hilsen / Kind regards
    >
    > Bo Victor Thomsen
    >
    > _______________________________________________
    > QGIS-Developer mailing list
    > [email protected]
    <mailto:[email protected]>
    > List info:
    https://lists.osgeo.org/mailman/listinfo/qgis-developer
    <https://lists.osgeo.org/mailman/listinfo/qgis-developer>
    > Unsubscribe:
    https://lists.osgeo.org/mailman/listinfo/qgis-developer
    <https://lists.osgeo.org/mailman/listinfo/qgis-developer>



-- Alessandro Pasotti
    QCooperative: www.qcooperative.net <http://www.qcooperative.net>
    ItOpen: www.itopen.it <http://www.itopen.it>
    _______________________________________________
    QGIS-Developer mailing list
    [email protected] <mailto:[email protected]>
    List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
    <https://lists.osgeo.org/mailman/listinfo/qgis-developer>
    Unsubscribe:
    https://lists.osgeo.org/mailman/listinfo/qgis-developer
    <https://lists.osgeo.org/mailman/listinfo/qgis-developer>

_______________________________________________
QGIS-Developer mailing list
[email protected]
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer

Reply via email to