Làm cách nào để làm mới bảng thuộc tính của một lớp sau khi chỉnh sửa bảng trong Trình quản lý DB?


14

Có cách nào để làm mới bảng thuộc tính của một lớp sau khi chỉnh sửa bảng (ví dụ: thêm một cột) trong Trình quản lý DB không?


plugin ChangeDataSource là cách nhanh nhất và hoạt động rất tốt với các tệp .csv
scataldi

Câu trả lời:


13

Ngắn và ngọt:

  1. Cài đặt plugin ChangeDataSource .
  2. Nhấp chuột phải vào lớp trong Bảng điều khiển Lớp và chọn Change vector datasource.
  3. Trong hộp thoại xuất hiện, chỉ cần nhấn OKmà không thay đổi bất kỳ cài đặt nào.

Về cơ bản, bạn đang "thay đổi" nguồn dữ liệu vectơ thành nguồn gốc, nhưng điều này buộc QGIS phải tải lại định nghĩa lớp.

Đã thử nghiệm trong QGIS 2.14 trên Linux Mint 17.2.


Tôi đã phải chọn lại cùng một nguồn dữ liệu để nó hoạt động.
sladstaetter

4

Giả sử rằng bạn đang làm việc với cơ sở dữ liệu PostGIS, bạn có thể cập nhật số liệu thống kê của bảng quan tâm bằng cách sử dụng ANALYSEhàm: http://www.postgresql.org/docs/civerse/static/sql-analyze.html

Trong trường hợp của bạn, bạn có thể thực thi câu lệnh bên trong trình quản lý DB bằng cách nhấn nút được đánh dấu trong hình ảnh đính kèm và thực hiện ANALYSEcâu lệnh trong cửa sổ, cũng được đánh dấu. Truy vấn sẽ là ANALYSE yourschema.yourtable. Lệnh phân tích sẽ cập nhật bảng của bạn, để khi bạn truy cập lại thông tin, nó sẽ phản ánh những thay đổi bạn đã thực hiện. Cửa sổ quản lý DB


1
Điều này không làm mới bảng thuộc tính (nhấp chuột phải vào lớp -> Mở Bảng thuộc tính).
Biển âm lịch

2

Tôi có hiểu rõ nếu bạn muốn làm mới bảng trong QGIS sau khi thay đổi các cột được thực hiện không?

Theo tôi biết, chỉ cần đóng và mở dự án hoặc thêm lại bảng sẽ làm điều này xảy ra. Miễn là bạn đã lưu kiểu mặc định trong cơ sở dữ liệu có thể là cách nhanh nhất.

Khi một cột được thêm vào Máy tính trường, các thay đổi sẽ hiển thị ngay lập tức nhưng trình quản lý DB cung cấp nhiều quyền kiểm soát hơn trong việc xác định loại trường để tôi hiểu tại sao đó có thể không phải là giải pháp.


Có lệnh Python nào để làm mới bảng thuộc tính không? Tôi cũng nhận thấy rằng 'Hiển thị số lượng tính năng' bỏ qua các thay đổi được thực hiện trong Trình quản lý DB (thêm tính năng / xóa tính năng).
Biển âm lịch

3
layer.dataProvider().forceReload()nên thực hiện mánh khóe
Matthias Kuhn
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.