จะรีเฟรชตารางแอ็ตทริบิวต์ของเลเยอร์หลังจากแก้ไขตารางใน DB-Manager ได้อย่างไร?


14

มีวิธีการรีเฟรชตารางคุณลักษณะของเลเยอร์หลังจากแก้ไขตาราง (เช่นเพิ่มคอลัมน์) ใน DB-Manager หรือไม่?


ปลั๊กอิน changeDataSource เป็นวิธีที่เร็วและได้ผลดีมากกับไฟล์ .csv
scataldi

คำตอบ:


13

สั้นและหวาน:

  1. ติดตั้งปลั๊กอิน changeDataSource
  2. Change vector datasourceคลิกขวาบนชั้นในชั้นแผงและเลือก
  3. ในกล่องโต้ตอบที่ปรากฏขึ้นเพียงกดOKโดยไม่เปลี่ยนการตั้งค่าใด ๆ

โดยทั่วไปคุณกำลัง "เปลี่ยน" แหล่งข้อมูลเวกเตอร์เป็นสิ่งที่เป็นอยู่แล้ว แต่สิ่งนี้บังคับให้ QGIS โหลดคำจำกัดความเลเยอร์อีกครั้ง

ทดสอบใน QGIS 2.14 บน Linux Mint 17.2


ฉันต้องเลือกแหล่งข้อมูลเดิมอีกครั้งเพื่อให้สามารถใช้งานได้
sladstaetter

4

สมมติว่าคุณทำงานกับฐานข้อมูล PostGIS คุณสามารถอัปเดตสถิติของตารางที่สนใจโดยใช้ANALYSEฟังก์ชัน: http://www.postgresql.org/docs/current/static/sql-analyze.html

ในกรณีของคุณคุณสามารถดำเนินการคำสั่งภายใน DB-manager โดยกดปุ่มที่มีเครื่องหมายในภาพที่แนบมาและดำเนินการANALYSEคำสั่งในหน้าต่างซึ่งถูกทำเครื่องหมายด้วย แบบสอบถามจะเป็นANALYSE yourschema.yourtable. คำสั่งวิเคราะห์ควรอัปเดตตารางของคุณดังนั้นเมื่อคุณเข้าถึงข้อมูลอีกครั้งควรสะท้อนถึงการเปลี่ยนแปลงที่คุณทำ หน้าต่างตัวจัดการฐานข้อมูล


1
สิ่งนี้จะไม่รีเฟรชตารางแอตทริบิวต์ (คลิกขวาที่เลเยอร์ -> เปิดตารางคุณสมบัติ)
Lunar Sea

2

ฉันเข้าใจดีหรือไม่ถ้าคุณตั้งใจจะรีเฟรชตารางใน QGIS หลังจากทำการเปลี่ยนแปลงคอลัมน์แล้ว?

เท่าที่ฉันรู้เพียงปิดและเปิดโครงการหรือเพิ่มตารางใหม่จะทำให้สิ่งนี้เกิดขึ้น ตราบใดที่คุณบันทึกสไตล์เริ่มต้นในฐานข้อมูลที่อาจเป็นวิธีที่เร็วที่สุด

เมื่อมีการเพิ่มคอลัมน์ด้วยเครื่องคำนวณภาคสนามการเปลี่ยนแปลงจะมองเห็นได้ทันที แต่ตัวจัดการฐานข้อมูลมีการควบคุมที่มากขึ้นในการกำหนดประเภทเขตข้อมูลดังนั้นฉันจึงเข้าใจว่าเหตุใดจึงอาจไม่ใช่วิธีแก้ปัญหา


มีคำสั่ง Python เพื่อรีเฟรชตารางแอตทริบิวต์หรือไม่ ฉันยังสังเกตเห็นว่า 'แสดงคุณสมบัตินับ' ละเว้นการเปลี่ยนแปลงที่เกิดขึ้นใน DB-Manager (เพิ่มคุณสมบัติ / ลบคุณสมบัติ)
Sea Lunar

3
layer.dataProvider().forceReload()ควรทำเคล็ดลับ
Matthias Kuhn
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.