Jumat, 26 Februari 2010

Cara mendapatkan DBMS, User database melalui ODBC

/*Buat external function*/
FUNCTION integer SQLGetInfo (long hconn, integer infotype, ref string infotypeptr, integer bufferlength, ref integer bufferlengthptr) LIBRARY "odbc32.dll"

/*Buat script*/
string ls_dbms, ls_database, ls_user
integer li_length

CONSTANT integer SQL_DBMS_NAME = 17
CONSTANT integer SQL_DATABASE_NAME = 16
CONSTANT integer SQL_USER_NAME = 47

long ll_dbhandle

ls_dbms = space(256)
ls_database = space(256)
ls_user = space(256)
ll_dbhandle = SQLCA.DbHandle()

SQLGetInfo(ll_dbhandle, SQL_DBMS_NAME, ls_dbms, 255, li_length)
SQLGetInfo(ll_dbhandle, SQL_DATABASE_NAME, ls_database, 255, li_length)
SQLGetInfo(ll_dbhandle, SQL_USER_NAME, ls_user, 255, li_length)

MessageBox("Current DBMS" , trim(ls_dbms))
MessageBox("Current DATABASE" , trim(ls_database))
MessageBox("Current USER" , trim(ls_user))

Mengganti huruf pertama menjadi kapital

Semisal kita mempunyai inputan data "luv piyut" dan kita ingin data inputan tersebut menjadi "Luv Piyut" maka kita bisa menggunakan fungsi WordCap() seperti tips berikut :

String ls_nama,ls_hasil

ls_nama = "luv piyut"

ls_hasil = dw_1.Describe ( "Evaluate('WordCap(~"" + ls_nama + "~")',0)")

Silahkan lihat hasilnya...:)

Menentukan lama waktu execute sebuah script

Untuk menguji lama waktu yang diperlukan dalam meng-execute sebuah potongan script kita bisa menggunakan fungsi CPU()

Long ll_start,ll_waktu

ll_start = CPU()

/*
** Script yang diexecute
*/

ll_waktu = CPU() - ll_start

Menentukan Nilai RGB

Program Contoh dibawah ini akan menggunakan funsi MOD untuk memisahkan warna merah, biru dan hijau

1. Buat aplikasi baru dalam Powerbuilder
2. Buat window baru
3. Tambahkan Control Commandbutton dan StaticText pada window
4. Tambahkan script berikut pada event Commandbutton Click()

Long c, gc
Integer R, G, B

C= st_1.BackColor
gc = rgb(0,1,0)
R = Mod(c, gc)
C = C / gc
G = Mod(c, gc)
C = C / gc
B = Mod(c, gc)

MessageBox ( "Nilai RGB", "Merah =" + String (R) + 'Green = "+ String (G) +" Blue = "+ String (B))

Jalankan program sampel dan klik tombol.
Sebuah pesan akan muncul yang menunjukkan nilai-nilai merah, hijau dan biru yang mewakili StaticText properti BackColor.

Membaca file lebih besar dari 32.765 bytes

Fungsi FileRead terbatas dalam membaca file hanya sampai 32.765 bytes saja, hal ini bisa diatasi

blob lbl_data
blob lbl_temp
long ll_file

ll_file = Fileopen("mybigfile.txt",streammode!)

DO WHILE FileRead(ll_file,lbl_temp) > 0
lbl_data += lbl_temp
LOOP

FileClose(ll_file)