Wednesday, April 28, 2010
remote connection
pake berikut:
remote database koneksi: LogmeIn Hamaci
remote pc desktop: team viewer
Saturday, April 24, 2010
VB6: Cannot load control DBGrid3,license not found
"Cannot load control DBGrid3,license not found".
Padahal di menu lainnya dalam satu applikasi tidak dan dicoba di PC lain juga tidak.
berikut solusinya:
masukkan CD installer VB6 then search file "DBGRID.REG". Biasanya di folder: E:\COMMON\TOOLS\VB\. Kemudian double click that file
Saturday, April 10, 2010
trigger di SQL Server
Trigger merupakan store procedure yang dijalankan secara automatis saat user melakukan modifikasi data pada tabel. Modifikasi data yang dilakukan pada tabel yaitu berupa perintah INSERT, UPDATE, dan DELETE.
INSERT , UPDATE dan DELETE bisa digabung jadi satu trigger yang dinamakan Multiple Trigger.
formatnya sbb:
CREATE TRIGGER nama_trigger
ON nama_tabel
FOR INSERT, UPDATE, DELETE
AS
isi statement-statement Anda disini.
GO
Friday, April 09, 2010
store procedure di SQL Server
... view tidak bisa dipasang parameter ....
... Stored Procedure lebih flexible karena ada parameter didalamnya ...
view yang diberi parameter.. kita biasa menyebutnya function .. (yg mereturn table... )
CREATE PROC au_info @lastname varchar(40), @firstname varchar(20)
AS
SELECT au_lname, au_fname, title, pub_name
FROM authors INNER JOIN titleauthor ON authors.au_id = titleauthor.au_id
JOIN titles ON titleauthor.title_id = titles.title_id
JOIN publishers ON titles.pub_id = publishers.pub_id
WHERE au_fname = @firstname
AND au_lname = @lastname
GO
untuk menjalankan store procedure diatas,
memakai script berikut di SQL Analyzer di database pubs:
EXECUTE au_info Ringer, Anne
GO
penggunaan View di SQL Server
definisi (query) suatu tabel. Untuk mudahnya, view adalah (seperti) "virtual tabel".
mengapa perlu memakai view, berikut beberapa alasannya:
- untuk membagi beban resource yang terpakai saat aplikasi di jalankan. Karena view dijalan/dieksekusi di sisi server. Maka resource di PC clients akan lebih hemat.
- untuk mempermudah dalam menampilkan data. Kadang struktur database yang kita buat
agak mempersulit kita dalam proses query untuk ditampilkan di report. Contoh report untuk crosstab/pivot tabel (pivot baru ada di SQL Server 2008).
- untuk mempermudah maintain aplikasi, apabila ada proses query yang sama dan berulang
maka akan lebih simple dalam proses pembuatan aplikasi.
- untuk mengimplementasikan security. User tidak bisa melihat colom colom tabel sebenarnya.
- kekurangannya: View tidak bisa menerima parameter sebagaimana Stored Procedured (SP).
View sangat membantu kita untuk merefleksikan field-field yang tidak ada di satu table tetapi ada di table lain, untuk itu kita bisa gunakan view ini dengan cara membuat relasi (join) antar tabletable tersebut. Tetapi yang perlu diperhatikan dalam pembuatan view ini adalah tentunya
keterkaitan antara table-table yang dipakai dalam view ini, semakin banyak relasi tentuanya akan semakin berat si SQL dalam melakukan suatu proses query dalam view tersebut, karena SQL akan melakukan proses loading semua data yang ada dalam table ke dalam view, baru kemudian SQL akan memfilternya, kalau kita lakukan query berdasarkan kriteria tertentu pada view tersebut.
contoh;
misal ingin membuat repot bentuk crosstab/ pivot tabel dengan crystall report 7 dan database SQL server2000. Pivot ada di SQL server 2008.
bila di SQL query analyzer, script berikut akan menjadi pivot:
SELECT OrderID,CustomerID,
(CASE ShipVia WHEN '1' THEN Freight ELSE 0 END) AS Q1,
(CASE ShipVia WHEN '2' THEN Freight ELSE 0 END) AS Q2,
(CASE ShipVia WHEN '3' THEN Freight ELSE 0 END) AS Q3
FROM orders
tapi bila ditampilkan ke crystal report 7 akan susah (kecuali versi 10 keatas) didesain.
sehingga memerlukan view untuk membuat virtual tabel yang nantinya mudah di design memakai crystal report 7.
berikut membuat viewnya:
create view order_view as
SELECT OrderID,CustomerID,
(CASE ShipVia WHEN '1' THEN Freight ELSE 0 END) AS Q1,
(CASE ShipVia WHEN '2' THEN Freight ELSE 0 END) AS Q2,
(CASE ShipVia WHEN '3' THEN Freight ELSE 0 END) AS Q3
FROM orders
Monday, March 29, 2010
shrink database Ms SQL Server
below steps script for reduce NORTHWIND database from 80GB become to 40GB:
(1) . backup the Log
BACKUP LOG NORTHWIND WITH NO_LOG
(2). cek logical name log
sp_helpdb NORTHWIND
(3). shrink the logical log become to 1024kb
DBCC SHRINKFILE (NORTHWIND_Log,1)
Limit function at SQL Server
select * from berita limit $posisi,$batas
and below for Ms SQL Server:
select top $batas * from wgrn_tbl where WGRN_ITMCD like '%$nama%' and WGRN_GRLNO not in ( select top $posisi WGRN_GRLNO from wgrn_tbl where WGRN_ITMCD like '%$nama%' order by WGRN_ITMCD,WGRN_RCVDT desc) order by WGRN_ITMCD,WGRN_RCVDT desc
Limit function used for e.g: at paging data for website
Saturday, March 06, 2010
penggunaan select between date di VB
Perhatikan penggunaan Format(DTPicker1.Value, "mm/dd/yyyy") , karena sering kali di SQL analizer jalan tapi di VB form jalan tapi salah data yg ditampilkannya
Private Sub Command5_Click()
Call BukaDatabase
Adodc3.ConnectionString = STRKoneksi
Adodc3.RecordSource = "SELECT * FROM transaksi where Tanggal between '" & Format(DTPicker1.Value, "mm/dd/yyyy") & "' and '" & Format(DTPicker2.Value, "mm/dd/yyyy") & "'"
Adodc3.Refresh
Set DataGrid1.DataSource = Adodc3
End Sub
selection formula Dtpicker at VB - CrystalReport
MsSQL server and Crstal report, have diffrent format data.
so please use this one:
Private Sub Command1_Click()
CrystalReport1.Connect = "ODBC;driver=SQLSERVER;" & "UID=sa;pwd=password;server=server_name;DATABASE=database_name"
CrystalReport1.ReportFileName = App.Path & "\REPORT\report111.rpt"
Qry = "{Transaksi.Tanggal} >= " & Format(DTPicker1, "\Date(yyyy,mm,dd)") & " " _
& "And {Transaksi.Tanggal} <= " & Format(DTPicker2, "\Date(yyyy,mm,dd)")
CrystalReport1.SelectionFormula = Qry
CrystalReport1.RetrieveDataFiles
CrystalReport1.WindowState = crptMaximized
CrystalReport1.Action = 1
End Sub
Sunday, February 28, 2010
ListView untuk serch dan selection di VB6
Private Sub Form_Load()
Combo1.AddItem "NomorInduk"
Combo1.AddItem "NamaSiswa"
Combo1.AddItem "JenisKelamin"
Call Tabel_barang
Call Data_Barang
End Sub
Private Sub ListView1_DblClick()
On Error Resume Next
If FrmMenu_Utama.MnuPembelian.Enabled = False Then
If Form1.txtnoinduk.BackColor = vbWhite Then
Form1.txtnoinduk.Text = ListView1.SelectedItem
Form1.txtnmsiswa.Text = ListView1.SelectedItem.ListSubItems(1).Text
Else
Form1.txtnoinduk.Text = ListView1.SelectedItem
Form1.txtnmsiswa.Text = ListView1.SelectedItem.ListSubItems(1).Text
End If
Else
Form1.txtnoinduk.Text = ListView1.SelectedItem
Form1.txtnmsiswa.Text = ListView1.SelectedItem
End If
Unload Me
End Sub
Private Sub ListView1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyEscape Then
Unload Me
End If
End Sub
Sub Tabel_barang()
With ListView1
.View = lvwReport
.FullRowSelect = True
.HotTracking = True
With .ColumnHeaders
.Add , , "NomorInduk", 1500
.Add , , "NamaSiswa", 1500
.Add , , "JenisKelamin", 2500
End With
End With
End Sub
Sub Data_Barang()
Call Koneksi_Database
sql = "select nomorinduk, namasiswa,jeniskelamin from siswa"
rs.Open sql, db
If rs.EOF = False Then
ListView1.ListItems.Clear
rs.MoveFirst
Do While Not rs.EOF
Set List = ListView1.ListItems.Add(, , rs.Fields("NomorInduk"))
List.SubItems(1) = rs.Fields("NamaSiswa")
List.SubItems(2) = rs.Fields("JenisKelamin")
rs.MoveNext
Loop
End If
End Sub
beda report footer dengan page footer di Crystal Report
report footer biasanya untuk:
- menampilakan hasil total dari kolom diatasnya
- menampilkan fungsi terbilangnya
- lokasi tampil akan menyesuaikan dengan jumlah row data [detail] diatasnya. Bila row detail data banyak akan makin kebawah dan bila sedikit akan makin keatas.
Page Footer:
- untuk print halaman
- print catatan kaki
- selalu pada bagian bawah kertas, tidak mengikuti banyak sedikitnya row data diatasnya
Agar "Report Footer" di Crystal Report aktif maka lakukan step berikut:
- right klik "report footer" di bagaian kiri (design)
- pilih "Format Section"
- un check "Suppress [No Drill-Down]
- ok
conection ADODC dengan script
- kalo applikasinya makin rumit, tak perlu setting ADODC properties one by one.
- mudah dirubah, misal ketika di copykan ke server orang lain dengan nama server dan password berbeda.
berikut contoh scriptnya bila dijadikan modul
Public Function Koneksi_Database() As Boolean
On Error GoTo Pesan
If db.State = adStateOpen Then
db.Close
End If
db.Open "Provider=SQLOLEDB.1;" & _
"Persist Security Info=False;" & _
"User ID=sa;" & _
"Password=password;" & _
"Initial Catalog=DBName;" & _
"Data Source=ServerName"
db.CursorLocation = adUseClient
Koneksi_Database = True
Exit Function
Pesan:
Koneksi_Database = False
MsgBox "Koneksi ke server tidak berhasil !!!", 16, "ERROR"
End
End Function
Membuat error handling di VB
-On Error Go To .... di awal sub program
-dan Exit Sub
-lalu Pesan: di akhir sub program.
contoh penggunaan di button "ADD" data row
Private Sub BtnEnh6_Click()
On Error GoTo Pesan
SqlMasuk = ""
SqlMasuk = "INSERT INTO transaksi" _
& " (Tanggal,NomorInduk,NamaSiswa,JumlahRupiah)" _
& " VALUES ('" & dttanggal.Value & "','" & txtnoinduk.Text & "',
& txtjumlahrupiah.Text & "')"
db.Execute SqlMasuk, , adCmdText
Call Form_Load
Adodc3.Refresh
Exit Sub
Pesan:
MsgBox "Input harus angka ...!", 16, "ERROR"
End Sub
Fungsi Terbilang / Spell Number in bahasa di crystal report
contoh:
UpperCase (ToWords ({@jumlah},0) + " ONLY " )
dimana @jumlah adalah: Sum ({Transaksi.Amount})
maka script diatas akan merubah hasil SUM dari tabel Transaksi , kolom Amount.
menjadi huruf dalam english, dengan suffic ONLY
Bila ingin membuat fungsi terbilang dalam bahasa Indonesia (number to text) untuk di Crystal report pakai dua file berikut:
- CruflFor.dll
- CruflBil.dll
sebelumnya register dulu dua file diatas ke c:\windows\crystal
dan cari pada bagian additional fuction di crystalreport
contoh penggunaannya, misal untuk terbilang rupiah pada lembar kwitansi
@jumlah=Sum ({Transaksi.Amount})
@format=ForTerformatFormNilai ({@jumlah})
@terbilang = AngTerbilangDekbilang ({@format}) + ' Rupiah.'
Oh ya: kolom Amount harus bertype data angka seperti: money, integer,decimal
agar bisa di SUM.
untuk dua file diatas: CruflFor.dll dan CruflBil.dll, silaken email ke ane.
Saturday, February 13, 2010
Struktur kontrol seleksi
JIKA jam kerja seorang pegawai dalam satu minggu adalah lebih dari 40
MAKA jam lembur sama dengan jumlah jam yang menjadi selisihnya
JIKA TIDAK pegawai tidak mempunyai jam lembur
Variasi sruktur kontrol seleksi yang biasa adalah struktur kontrol kasus.Struktur ini menawarkan labih dari satu keputusan ya atau tidak. Struktur kasus ini memberikan alternatif, atau kasus yang bisa ditampilkan. (JIKA kasus 1 terjadi, MAKA lakukan ….. JIKA kasus 2 terjadi, MAKA ikuti alternatif …… .” Dan seterusnya.) Struktur kontrol jika membuat programer tidak harus mengiindikasikan begitu banyak kondisi JIKA-MAKA-JIKA TIDAK secara terpisah.
Konsep Dasar
Bentuk umum statemen if .. else
Bentuk 1 : Paling sederhana tanpa Else
if (kondisi) aksi;
Bentuk 2 : IF .. Else .. dengan satu kondisi
If (kondisi)
aksi_1;
else
aksi_2;
Bentuk 3 : IF .. Else .. dengan kondisi bertingkat
If (kondisi_1)
aksi_1;
else if (kondisi_2)
aksi_2;
else
aksi_3;
Catatan:
Aksi akan dijalankan hanya apabila kondisi terpenuhi (nilai kondisi true), dan jika
tidak terpenuhi (nilai kondisi false), maka aksi akan diabaikan dan aksi berikutnya
yang akan dijalankan.
Apabila terdapat lebih dari satu baris statement dalam satu aksi, maka harus diawali
dengan ‘{‘ dan diakhiri dengan ‘}’.
Contoh :
If (kondisi)
{
statemen_1;
statemen_2;
statemen_n;
}
Contoh Program : IF - ELSE
#include
#include
int main ()
{
int nilai=0;
cout << "Silahkan masukkan nilai anda : ";
cin >> nilai;
//deklarasi kondisi bercabang
if (nilai>50)
{
cout << "\nNilai anda adalah " << nilai <<"\n";
cout << "Anda lulus! ";
}
else
cout << "\nAnda tidak lulus!";
getch();
return 0;
}
Contoh Program : IF - ELSE Bertingkat
#include
#include
int main ()
{
char ket_hasil;
cout <<"Apa nilai ujian kalkulus mu [A|B|C]: ";
cin >> ket_hasil;
//deklarasi kondisi bercabang
if (ket_hasil=='A' || ket_hasil=='a')
cout << "Selamat ya, pertahankan belajarmu!";
else if (ket_hasil=='B' || ket_hasil=='b')
cout << "Selamat ya, tingkatkan belajarmu!";
else if (ket_hasil=='C' || ket_hasil=='c')
cout << "Anda harus lebih giat lagi belajarnya!";
else
cout << "Maaf, Anda salah memasukkan nilai !";
getch();
return 0;
}
Struktur kontrol sekuensi
contoh program :
// defined constants: calculate circle
#include
using namespace std;
//deklarasi konstanta
#define PI 3.14159
#define NEWLINE '\n'
int main ()
{
//deklarasi variabel lokal
double r=5.0; //nilai radius
double circle;
//Proses
circle = 2 * PI * r;
cout << circle;
cout << NEWLINE;
//akhir program
getch();
return 0;
}
Saturday, February 06, 2010
Friday, February 05, 2010
beda VARCHAR dan CHAR di SQL Server
Tipe data char adalah tipe data karakter yang panjangnya tetap (fixed-length). Ini artinya SQL Server akan mengalokasikan memori pada media penyimpanan untuk menyimpan tipe data ini sebesar ukuran maksimum yang kita minta. Contohnya deklarasi char(5) artinya SQL Server akan otomatis melakukan alokasi ukuran sebesar lima character pada media penyimpanan walaupun kita hanya mengisi data sebanyak tiga karakter misalnya.Tipe data varchar adalah tipe data karakter yang panjangnya tidak tetap (variable-length). Ini berarti SQL Server akan mengalokasikan memori pada media penyimpanan hanya sebesar atau sepanjang ukuran data aktual yang diisikan. Contohnya pada saat kita mendeklarasikan varchar(5) dan pada field tersebut kita isi 3 karakter maka pada media penyimpanan hanya akan dialokasikan sebesar 3 karakter saja.
Sunday, January 24, 2010
include_path in php.ini
;;;;;;;;;;;;;;;;;;;;;;;;;; Paths and Directories ;;;;;;;;;;;;;;;;;;;;;;;;;;
; UNIX: "/path1:/path2";include_path = ".:/php/includes";; Windows: "\path1;\path2"
include_path = ".;c:\AppServ\php5\pear"
then please copy folder jpgraph, fpdf, adodb , etc to that path
then restart the apache services
Fatal error: Call to undefined function mssql_connect()
extension=php_mssql.dll
;extension=php_msql.dll
extension=php_mysql.dll
extension=php_mysqli.dll
;extension=php_oci8.dll
and Apache services already restart, PC also.
and below dll files also keep at C:\AppServ\php5\ext:
- php_msql.dll and
- php_mssql.dll
please download ntwdblib.dll at http://webzila.com/?wz=dll#results then restore to folder:
C:\AppServ\Apache2.2\bin then restart the apache services

Loading...