[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