Forum QGIS

Pełna wersja: wytnij/wklej - ERROR: invalid input syntax for integer: ""
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Witam.
Mam następujący problem. Mianowicie nie wiedząc czemu nie mogę przenosić wielu obiektów miedzy warstwami. Prościej - jeżeli zaznaczony jest jeden obiekt mogę go wyciąć i wkleić do nowej warstwy. Jeżeli jest ich > 1 przy próbie zapisu warstwy (po wklejeniu) wyskakuje ERROR: invalid input syntax for integer: "". Qgis 1.4 na Postgresql 8.4. Żeby jeszcze troszkę skomplikować powiem, iż czasami "udaje się" przenieść więcej obiektów (szczególnie za pierwszą próbą - późniejsze nie dają rady).
Jeżeli ktoś zetkną się z powyższym problemem lub zna rozwiązanie proszę o info.
Pozdrawiam.
Wygląda na różne tabele atrybutów, skoro próbuje wpisać "" w pole liczbowe. Aczkolwiek nie mam pomysłu, czemu ujawnia się tylko czasami. Czy ta postgisowa tabela ma geometrię w ostatniej kolumnie? Teoretycznie nie musi, ale tak jest najbezpieczniej.
Hhmmm... wygląda na mój błąd. W jednej z kolumn jakimś cudem było double precision zamiast intiger. A bym sobie dał rękę uciąć, że były takie same. Teraz wydaje się wszystko śmigać. Można kasować. Dzięki.
Pozdrawiam.
A, to widocznie śmigały te, gdzie były całkowite wartości. Qgis konwertuje wszystko do uniwersalnego formatu QVariant i dlatego wysypuje się dopiero na etapie commitu do bazy.
Tak przy okazji, może macie pomysł czemu QGIS nie zawsze kopiuje polskie czcionki do warstwy postgisowej? Baza ma ustawione kodowania UTF8, warstwa SHP też. Pomimo tego po skopiowaniu danych z warstwy SHP do postgisa polskie litery zmieniają się w krzaczki.
Co ciekawe, jeżeli dany atrybut dla części obiektów zawiera polską literę, a dla części nie, to kopiując te obiekty oddzielnie wszystko jest ok. Ale jeżeli kopiuję wszystkie to polskie litery znikają.

QGIS 1.4, WinXP
A kopiujesz SPITem? SHP jest kodowany w utfie ORAZ w okienku wyboru pliku jest zaznaczony uft?
(21-06-2010, 19:20)borys napisał(a): [ -> ]A kopiujesz SPITem?

SPITem utworzyłem warstwy w bazie (z początkowymi danymi).
Później z kolejnych danych w formie tekstowej tworzę (wtyczką do importowania tekstu) pliki SHP, które zapisuję z kodowaniem UTF8. W warstwach SHP polskie czcionki są ok. Dopiero po skopiowaniu obiektów z SHP na warstwę postgis (a dokładniej po zapisie do bazy) pojawiają się krzaczki.

(21-06-2010, 19:20)borys napisał(a): [ -> ]... ORAZ w okienku wyboru pliku jest zaznaczony uft?

W którym okienku wyboru?
(21-06-2010, 19:31)Rayo napisał(a): [ -> ]SPITem utworzyłem warstwy w bazie (z początkowymi danymi).
Później z kolejnych danych w formie tekstowej tworzę (wtyczką do importowania tekstu) pliki SHP, które zapisuję z kodowaniem UTF8. W warstwach SHP polskie czcionki są ok. Dopiero po skopiowaniu obiektów z SHP na warstwę postgis (a dokładniej po zapisie do bazy) pojawiają się krzaczki.

A, czyli podczas kopiuj-wklej między warstwami? To nie wiem, gdzie jest pies pogrzebany. Na linuchu nie udaje mi się tego błędu zreprodukować, wszystko śmiga jak powinno.

Nie wiem czy postgres obsługuje automatyczny wybór kodowania (ja zawsze mam ustawiony na sztywno na utf8). Bo to zachowanie może sugerować, że ustawia kodowanie według pierwszego rekordu w transakcji, preferując latin1 nad utf8. Jeśli tak by było, to wszystko zależy od tego, czy ten pierwszy rekord zawiera znaki utfowe, czy nie... Może to jest jakiś trop.

(21-06-2010, 19:31)Rayo napisał(a): [ -> ]W którym okienku wyboru?

W SPITcie, ale to już nieaktualne pytanie :-)
Kurcze muszę przyznać, iż też to zauważyłem. Polskie znaki są 'gubione' przy przenoszeniu pomiędzy warstwami za pomocą kopiuj/wklej. Oczywiście warstwy w bazie postgresql. Dzieje się to przy przenoszeniu wielu elementów (z pojedynczymi nie zauważyłem problemu). Bazę mam w UTF8, porównanie Polish_Poland.1250. W postgresql opcję 'Pliki są czytane i zapisywane w unikodzie UTF8'. Czy są jeszcze jakieś inne opcje?
/Qgis 1.4, Postgresql 8.4 i WinXP/

PS. Sprawa wydaje się mieć związek z Mapami Wartości wczytanymi z pliku csv. W pliku qgs po wczytaniu polskich znaków zostają same śmieci. Może to jest trop...
Ciężko mi powiedzieć, bo nie używam ani windowsów, ani kodowań innych niż utf8.
A co do mapy wartości, to nie sprawdzałem, ale pewnie plik CSV powinien być w utf8, a jest w cp1250.