[Qgis-user] use autogenerated form in Qgis for same table in different postgres databases

Bernhard Ströbl bernhard.stroebl at jena.de
Mon Dec 22 00:36:27 PST 2014


Hi Janneke,

sorry for that...
I have already fixed it but did not make a new release yet.
The plugin provides a means to configure your masks see [1]. This 
configuration is stored in database tables and if they do not exist, you 
get this error.
Try to configure any of your layers, which should create the 
configuration tables for you. You do not need to configure your tables, 
though.

Bernhard

[1] https://github.com/bstroebl/DataDrivenInputMask/wiki/Usage

Am 22.12.2014 09:09, schrieb Janneke van Dijk:
> Hello Bernhard,
>
> Thanks for the suggestion. I just installed the plugin. When selecting a
> table and trying to initialise the layer I get a Database Error: syntax
> error at or near "("
> LINE1: EXECUTE ('public'.'T_network_geometry') (followed by more, I can
> send the screenshot).
>
> When I click OK the python error window shows:
>
> Traceback (most recent call last):
>    File
> "C:/Users/Janneke/.qgis2/python/plugins\DataDrivenInputMask\datadriveninputmask.py",
> line 188, in initializeLayer
>      inputUi = None,  searchUi = None,  helpText = "") # set the
> defaults here because somehow some of the values persist
>    File
> "C:/Users/Janneke/.qgis2/python/plugins\DataDrivenInputMask\ddmanager.py",
> line 176, in initLayer
>      readConfigTables = readConfigTables)
>    File
> "C:/Users/Janneke/.qgis2/python/plugins\DataDrivenInputMask\ddui.py",
> line 371, in createUi
>      showParents,  showChildren,  readConfigTables, createAction)
>    File
> "C:/Users/Janneke/.qgis2/python/plugins\DataDrivenInputMask\ddui.py",
> line 200, in __createForms
>      n2mAttributes = self.getN2mAttributes(db,  thisTable, anAtt.name,
> anAtt.num,  labels,  showChildren,  skip)
>    File
> "C:/Users/Janneke/.qgis2/python/plugins\DataDrivenInputMask\ddui.py",
> line 635, in getN2mAttributes
>      configList =  self.configureLayer(ddRelationTable,  [], {},  [],
> {},  {},  [],  db,  True,  "")
>    File
> "C:/Users/Janneke/.qgis2/python/plugins\DataDrivenInputMask\ddui.py",
> line 184, in configureLayer
>      DbError(query)
>    File
> "C:/Users/Janneke/.qgis2/python/plugins\DataDrivenInputMask\dderror.py",
> line 54, in __init__
>      raise FatalError("DBError exiting")
> FatalError: 'DBError exiting'
>
>
> Python version:
> 2.7.4 (default, Apr  6 2013, 19:54:46) [MSC v.1500 32 bit (Intel)]
>
> QGIS version:
> 2.6.1-Brighton Brighton, e2a51df
>
>
> Should I do something else before initialising the layer?
>
> thanks,
> Janneke
>
>
> On 22/12/2014 10:14, Bernhard Ströbl wrote:
>> Hi Janneke,
>>
>> this is not answering your question... but, have you tried the
>> DataDrivenInputMask plugin [1]. It auto-generates input masks for
>> PostgreSQL layers. Only prerequisite is a properly designed database
>> in respect to constraints, default values, data types.
>>
>> regards
>>
>> Bernhard
>>
>> [1] http://plugins.qgis.org/plugins/DataDrivenInputMask/
>>
>> Am 21.12.2014 15:44, schrieb Janneke van Dijk:
>>> Dear all,
>>>
>>> I have set up a form in QGIS 2.6 using the attribute editor layout
>>> 'autogenerate', to edit an editable view in a postgres database. This
>>> works nicely. I would like to use this form to edit data in other
>>> databases that have an identical structure. Ideally, I would set up a
>>> project file with all properties set where I could choose to load layers
>>> either from one or another database (with identical structures), and
>>> when I edit a layer the correct form opens.
>>>
>>> If I save it as a .qml file (from project1 connected to database1), then
>>> load it in project2 (connected to database2 with identical tables
>>> loaded) through properties>fields>load style it appears to load it (the
>>> edit widgets get changed to the same as in project1), but when I click a
>>> value relation widget the layer, key column and value column fields are
>>> empty. When I open the attribute table all fields that have a value
>>> relation that refers to a lookup table that contains different values
>>> than the original lookup table will show their values between brackets
>>> (at least, those values that do not appear in the original table).
>>>
>>> It looks as if the .qml retains a link to the original database and
>>> lookup tables (and not just to layer names as they are loaded in the
>>> project). Is there a way to configure a form based on a table structure
>>> that can be re-used for other tables with the same structure?
>>>
>>> Thanks,
>>>
>>> Janneke
>>>
>>>


__________ Information from ESET Mail Security, version of virus signature database 10912 (20141221) __________

The message was checked by ESET Mail Security.
http://www.eset.com





More information about the Qgis-user mailing list