[QGIS-pt] QFIELD sincronizado com POSTGIS - Problema com campos do tipo numero inteiro

Pedro Fernandes pmmfernandes at outlook.pt
Fri Aug 6 02:32:27 PDT 2021


Bom dia,

Estou a preparar um projeto de QFIELD que se sincroniza com uma base de dados POSTGIS e encontrei um problema de sincronização com o qual alguém já se deve ter deparado.

Quando um utilizador apaga o conteudo de um campo do tipo numero inteiro no QFIELD ele dá o seguinte erro de sincronização:
2021-08-06T09:36:43     CRITICAL    Layer Comércio/Serviços : PostGIS error while changing attributes: ERROR: invalid input syntax for integer: ""
             LINE 1: ...ipamentos"."g_comercio_servicos" SET "idnpolicia"='' WHERE "...

Pelo que compreendi da mensagem de erro, o QFIELD tenta sincronizar o campo idnpolicia com o valor '' (vazio entre pelicas), "idnpolicia"='', o que o POSTGIS interpreta como texto e dá erro. O correto seria o QFIELD atualizar campo com nulo, ou seja "idnpolicia"=null.

Alguém sabe como contornar este erro de sincronização?

Eu já defini este campo como range (para tentar que fosse o QFIELD o considerasse como numero), e tenho um constraint para garantir que o numero de policia inserido existe, mas gostava de poder limpar o conteudo do campo caso o comercio exista num estabelecimento sem numero de policia (existem muitos).

Constraint:
if(
idnpolicia is null,
true,
aggregate(
layer:='Números de Polícia',
aggregate:='max',
expression:="gid",
filter:="gid" = attribute(@parent,'idnpolicia'))>0
)

Nota: eu estou a fazer este constraint porque inicialmente usei um campo do tipo value relation mas o QFIELD rebentava porque a tabela de dominio era demasiado grande. Penso que estou a explorar os limites do QFIELD!

Desde já agradeço qualquer ajuda.

Melhores cumprimentos,

Pedro Fernandes
T. +351 962 253 300



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-pt/attachments/20210806/cd672623/attachment.html>


More information about the QGIS-pt mailing list