Mais

Erro ao conectar qgis com postgres?

Erro ao conectar qgis com postgres?


sql = "selecionar long, lat from poidata.poi_ca from where city LIKE '% unnyvale'" uri = QgsDataSourceURI () uri.setConnection ("localhost", "5432", "gis_data", "postgres", "vajja") uri .setDataSource ("", sql, "long", "", "lat") vlayer = QgsVectorLayer (uri.uri (), "LayerName", "postgres") QgsMapLayerRegistry.instance (). addMapLayer (vlayer)

Erro: Incapaz de acessar a relação "select long, lat from poidata.poi_ca from where city LIKE '% unnyvale'". A mensagem de erro do banco de dados foi: ERROR: relação "select long, lat from poidata.poi_ca from where city LIKE '% unny" não existe LINHA 1: SELECT * FROM "select long, lat from poidata.poi_ca from where… ^ . SQL: SELECT * FROM "select long, lat from poidata.poi_ca from where city LIKE '% unnyvale'"

Origens:

Tentei ambos os métodos acima de fontes diferentes, mas ainda recebo um erro


Esta linha é o problema

uri.setDataSource ("", sql, "long", "", "lat")

A mensagem de erro que você está recebendo diz que a tabela "select long, lat from ..." não existe. O motivo é que você está passando o sql como o segundo parâmetro; este deve ser o nome da tabela.

Na documentação da API, os parâmetros devem estar nesta ordem ...

QgsDataSourceURI.setDataSource (Esquema, Tabela, GeometryColumn, Sql, keyColumn)

Pode ser que o primeiro link que você postou esteja desatualizado. Houve alterações de API feitas no 2.0, esta pode ser uma delas. O segundo link (a documentação oficial) está atualizado.