rulururu





post Tips: Fungsi Transfer Antar Tabel Power Builder

April 29th, 2008

Filed under: Power Builder — Unggul_USA @ 5:09 pm — View blog reactions


LogoSybaseAcapkali kita perlu meng-copy data dari suatu table ke table yang lain baik dalam database yang sama maupun ke database yang terpisah. Dalam power builder tersedia database object yaitu ‘data pipeline’ yang dapat digunakan untuk melakukan hal tersebut.Kali ini akan disajikan sebuah fungsi yang dapat digunakan untuk hal tersebut diatas tetapi dengan metode yang berbeda, tidak menggunakan ‘data pipeline’ melainkan menggunakan manipulasi data melalui object datawindow. Biasanya kita akan menggunakan fungsi built-in getitemstring untuk mengambil data dari datawindow sumber dan setitem untuk mengisikan data pada datawindow tujuan:

Contoh:
string s_nim
s_nim = dw_source.getitemstring(dw_source.getrow(),”nim”)
dw_target.setitem(ll_newrow,”nim”,s_nim)

Dari contoh diatas terlihat bahwa kita harus tahu tipe data dari kolom pada datawindow sumber dan tipe data dari kolom pada datawindow target. Bagaimana kalau jumlah kolomnya banyak? Atau banyak data yang harus ditransfer dari banyak tabel? Berikut ini ada solusi yang fkelsibel untuk banyak tabel dan banyak tipe data.

Fungsi berikut menggunakan 2 (dua) parameter bertipe datawindow ds_source dan ds_target.

f_transfer_data

Powerscript lengkapnya seperti berikut ini:

integer i_ret

string sdataobject
string ls_colname
string ls_coltype
long ll_newrow
long li_jrow,i,j
string ls_jcol

ds_source.dataobject = “d_gaji”
ds_source.settransobject(sqlca)
ds_source.retrieve()

li_jrow = ds_source.rowcount()
ls_jcol = ds_source.Object.DataWindow.Column.Count

for i=1 to li_jrow

ds_source.setrow(i)
ds_target.dataobject = “d_gaji”
ds_target.settransobject(sqlca)
ll_newrow = ds_target.insertrow(0)
for j=1 to integer(ls_jcol)

ds_source.setcolumn(j)
ls_colname = ds_source.GetColumnName()
ls_coltype = ds_source.Describe(ls_colname+”.ColType”)
if left(ls_coltype,5) = ‘char(’ then
ds_target.setitem(ll_newrow,j,ds_source.getitemstring(i,j))
else
if left(ls_coltype,5) = ‘date’ then
ds_target.setitem(ll_newrow,j,ds_source.getitemdate(i,j))
else
if left(ls_coltype,5) = ‘datet’ then
ds_target.setitem(ll_newrow,j,ds_source.getitemdatetime(i,j))
else
if left(ls_coltype,5) = ‘time’ or &
left(ls_coltype,5) = ‘times’ then
ds_target.setitem(ll_newrow,j,ds_source.getitemtime(i,j))
else
if left(ls_coltype,5) = ‘decim’ then
ds_target.setitem(ll_newrow,j,ds_source.getitemdecimal(i,j))
else
if left(ls_coltype,5) = ‘int’ or &
left(ls_coltype,5) = ‘long’ or &
ls_coltype = ‘long’ or &
left(ls_coltype,5) = ‘numbe’ or &
left(ls_coltype,5) = ‘real’ or &
left(ls_coltype,5) = ‘ulong’ then
ds_target.setitem(ll_newrow,j,ds_source.getitemnumber(i,j))
end if
end if
end if
end if
end if
end if

next
ds_target.accepttext()
i_ret = 1
i_ret = f_dw_update(ds_target,”",0)
if i_ret = 0 then
exit
end if

next
return i_ret

Dari script diatas dapat dilihat bahwa pengambilan nama kolom, tipe kolom dilakukan secara fleksibel yaitu dengan menggunakan nomor kolom. Proses transfer dilakukan per-row dan masing-masing row dilakukan per-kolom. ls_jcol ls_colname = ds_source.GetColumnName() berisi jumlah kolom pada tabel. untuk mengambil nama kolom dan ls_coltype = ds_source.Describe(ls_colname+”.ColType”) untuk mengambil tipe data kolom tersebut dengan telebih dahulu ditentukan kolom mana yang mau diambil info tersebut yaitu dengan ds_source.setcolumn(j).

File library / PBL dapat anda download disini. Selamat mencoba.

Inlinks :

(1 votes, average: 3 out of 5)
373 Views

No Comments »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment

Most Viewed Post/Page:

  • Tips : Mengatasi Komputer Bermasalah - 15,518 Views
  • Tips : Membuat Jaringan Wi-Fi - 6,742 Views
  • Download - 6,094 Views
  • Memilih Anti Virus - 5,227 Views
  • Apa itu Multimedia ? - 5,217 Views
  • SORTING ALGORITHM ANALYSIS - 4,858 Views
  • Tips : Merawat Komputer - 3,777 Views
  • Sejarah Kriptografi - 3,602 Views
  • Database - 3,376 Views
  • Power Builder 11.0 Launching - 3,368 Views
  • Most Rated Post/Page:

  • Tips : Membuat Jaringan Wi-Fi - 8 Votes
  • Tips : Mengatasi Komputer Bermasalah - 7 Votes
  • Download - 5 Votes
  • Tips : Komputer Aman Dari Virus - 5 Votes
  • Memilih Anti Virus - 4 Votes
  • Menjalankan Banyak Account Yahoo Messenger - 3 Votes
  • Aplikasi Web Atau Aplikasi Desktop ? - 3 Votes
  • Aplikasi Untuk Amankan Data Penting - 3 Votes
  • Tips : Merawat Komputer - 2 Votes
  • Database #2 - 2 Votes
  • ruldrurd
    porn movies buy online pharmacy viagra soft tabs viagra or levitra order cialis soft tabs online information on viagra for woman cheap cialis soft tabs levitra cheap generic viagra online viagra levitra purchase uk free cialis order online cialis cream for women levitra for women online viagra soft tabs
    Powered by WordPress, Web Design by Laurentiu Piron
    Entries (RSS) and Comments (RSS)