Update Data Atribut di MapXtreme

Di artikel sebelumnya, ada sedikit penjelasan tentang pencarian objek. Di artikel kali ini, metode pencarian tidak berdasarkan objek di peta. Objek dicari di tabel atribut tanpa mengetahui posisi objek di peta. Untuk melakukannya digunakan class

MapInfo.Data.SearchInfoFactory.SearchWhere

Update data attribut

Pertama kita gunakan class SearchInfoFactory untuk menentukan objek yang dicari. Setelah feature dari objek yang dicari ditemukan, digunakan method UpdateFeature

contoh vb:

Private Sub UpdateNoreg(ByVal idlama As String, ByVal idbaru As String)
  Dim MIcon As New MapInfo.Data.MIConnection
  Dim si As SearchInfo
  Try
     si = MapInfo.Data.SearchInfoFactory.SearchWhere("NO_REG = '" & idlama & "'")
     MIcon.Open()

     Dim mitable As Table
     mitable = MapInfo.Engine.Session.Current.Catalog.GetTable("POSISI_STRATEGIS")
     Dim fl As FeatureLayer = New FeatureLayer(mitable)
     Dim irfc As IResultSetFeatureCollection
     irfc = MapInfo.Engine.Session.Current.Catalog.Search(mitable, si)

     If irfc.Count <> 0 Then
        Dim idfc As IDynamicFeatureCollection = CType(irfc, IDynamicFeatureCollection)
        Dim f As Feature = idfc.Item(0)
        f("NO_REG") = idbaru
        fl.Table.UpdateFeature(f, True)
     End If
  Catch ex As Exception
  Finally
     If MIcon.State = Data.ConnectionState.Open Then
        MIcon.Close()
     End If
  End Try
End Sub

SearchInfoFactory.SearchWhere(“NO_REG = ‘” & idlama & “‘”)  maksudnya mencari value idlama di kolom ‘NO_REG’ dari tabel atribut peta POSISI_STRATEGIS. Setelah objek ditemukan (If irfc.Count <> 0)  dilakukan perubahan nilai dari kolom NO_REG. (f(“NO_REG”) = idbaru)

fl.Table.UpdateFeature(f, True) untuk melakukan perubahan di objek yang terseleksi, parameter ‘True’ menunjukkan tidak semua kolom diupdate, dalam hal ini hanya kolom ‘NO_REG’ yang di update.

Jangan lupa menambahkan kode berikut di baris pertama

Imports MapInfo.Data
Imports MapInfo.Mapping

Ditulis menggunakan MapXtreme 6.8

About Yuniar

Penulis sekarang lebih banyak bekerja menggunakan teknologi Microsoft .NET secara umum dan TIDAK lagi menggunakan aplikasi MapXtreme.net dari MapInfo. Karena itu mohon maaf, jika pertanyaan-pertanyaan mengenai MapXtreme sudah tidak bisa saya jawab lagi.

Posted on 16 November 2009, in MapXtreme and tagged , , , , , . Bookmark the permalink. 2 Komentar.

  1. tanya lagi nih mas yuniar,, code yang –> “Dim f As Feature = idfc.Item(0)” .. maksud dari idfc.item(0) itu apa ya??

    • Ketika search where mencari objek, yang ditemukan bisa lebih dari satu kan?. Karena itu penampung hasil pencarian (irfc) bertipe collection.

      Karena tipenya collection maka harus ada indek yang menunjukkan posisi datanya di dalam collection.
      idfc yang merupakan konversi dari irfc juga merupakan collection.

      Di contoh yang aku buat, idlama/No_Reg itu unik, hasil pencariannya pasti cuman nemu satu. Dan dalam collection pasti selalu di taruh di indek ke 0 —> idfc.item(0)

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: