Menyimpan Informasi Tabel ADO.net ke MapXtreme Session Objek

Jika kita memiliki data yang tersimpan di data table atau database yang diakses menggunakan ADO.net, data tersebut dapat dimasukkan ke MapInfo Catalog dan dianggap sebagai MapInfo Table. File dBase, Microsoft Access maupun oracle OCI dapat diserializable secara otomatis dan diakses secara langsung oleh mapinfo catalog. Sementara selain tipe data yang disebutkan tersebut masih bisa diakses mapinfo catalog melalui ADO.net.

Seringkali data disimpan di database, maka ketika membuat tematik, kita perlu melakukan penggabungan data dari database dengan data attribut peta agar dapat diakses oleh mapinfo catalog.

Meskipun tabel ADO.NET ini dapat di join dengan tabel mapinfo, tetapi tabel ini tidak dapat di serializable secara otomatis. Sehingga dalam penerapan manual state management perlu langkah-langkah tertentu untuk melakukan Save dan Restore tabel ADO.NET di mapxtreme session objek.


Langkah save ke MapXtreme session objek

  1. Masukkan ADO DataTable atau DataSet ke HTTPSession
  2. Simpan MapInfo.Data.TableInfoView atau MapInfo.DataTableInfoResultSet  yang menyimpan informasi DataTable atau DataSet ke HTTPSession
  3. Tutup ADO DataTable  di Catalog

Contoh:

public override void SaveState()
{
   . . . .
   MapInfo.Data.Table adonettable1 = Session.Current.Catalog["miAdoNetTable"];
   if (adonettable1 != null)
   {
      MapInfo.Data.TableInfoAdoNet ti = (MapInfo.Data.TableInfoAdoNet)adonettable1.TableInfo;
      //simpan ADO DataTable atau DataSet dalam HttpSession
      HttpContext.Current.Session["ADODATA1"] = ti.DataTable.DataSet;
      //simpan semua ke HttpSession
      ManualSerializer.SaveMapXtremeObjectIntoHttpSession("miAdoNetTable", "ADOTABLE1");
      //tutup AdoNetTable di catalog
      adonettable1.Close();
   }
   . . . .
}

Langkah-langkah restore mapxtreme session objek

  1. Ambil DataTable atau DataSet yang sebelumnya disimpan di HttpSession
  2. Buat objek TableInfoAdoNet baru berdasarkan DataTable menggunakan nama alias dari tabel asli di DataSet atau DataTable.
  3. Buka tabel ADO.NET baru di catalog berdasarkan pada objeck TableInfoAdoNet.
  4. Restore semua MapInfo.Data.TableInfoView atau tabel MapInfo.Data.TableInfoResultSet berdasarkan tabel ADO.NET.
public override void RestoreState()
{
   . . . . .
   MapInfo.Data.Table adonettable1 = Session.Current.Catalog["miAdoNetTable"];
   if (adonettable1 != null) adonettable1.Close();

   //Ambil DataTable atau DataSet yang sebelumnya disimpan dalam HttpSession
   System.Data.DataSet ds = (System.Data.DataSet)HttpContext.Current.Session["ADODATA1"];
   if (ds != null)
   {
      //Buat objek TableInfoAdoNet baru berdasarkan DataTable
      MapInfo.Data.TableInfoAdoNet ti;
      ti = new MapInfo.Data.TableInfoAdoNet("miAdoNetTable", ds.Tables[0]);

      //Buka tabel ADO.NET baru di catalog berdasarkan pada
      //objeck TableInfoAdoNet.
      Session.Current.Catalog.OpenTable(ti);
      //restore semuanya
      ManualSerializer.RestoreMapXtremeObjectFromHttpSession("adotable1");
      ds.Dispose();
      . . . . .
 }

Semoga bisa membantu. Happy coding.

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 4 September 2009, in MapXtreme and tagged , , , , . Bookmark the permalink. Tinggalkan komentar.

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: