Powered by Blogger.

Pencarian ..

Tuesday, November 29, 2011

Membuat Relasi Tabel di Foxpro 2.6

Database yang terdiri dari hanya tabel-tabel yang terlepas satu sama lain sangat jarang dijumpai. Jika menemukan database yang seperti demikian hanya ada dua kemungkinannya yaitu databasenya sangat-sangat sederhana atau keliru dalam desain database ;) 

Tulisan kali ini akan membahas bagaimana cara merelasikan tabel di Foxpro 2.6. Caranya ternyata sangat mudah. Foxpro sudah mempunyai sebuah perintah bawaan yaitu SET RELATION TO. Dengan menggunakan perintah ini maka perintah SEEK tidak diperlukan lagi karena SET RELATION TO akan secara otomatis mengatur agar record yang ditunjukkan oleh penunjuk record pada tabel anak (child) selalu menyesuaikan diri dengan perubahan record yang ditunjuk oleh penunjuk record pada tabel induk (master), sesuai dengan nilai kunci.

contoh desain database yang ingin dibuat

Perhatikan contoh diatas, kita akan mencoba menampilkan data yang berisikan No Faktur, Nama Produk, Nama Supplier dan Discount. Tabel di atas adalah tabel berelasi.

relasi01.prg :
clear
* mendifinisikan tabel-tabel yang akan digunakan
SELECT A
USE PRODUCT
 INDEX ON Prod_id TAG Prod_id
SELECT B
USE SUPPLIER
 INDEX ON Supp_id TAG Supp_id
SELECT C
USE INVOICE
SET RELATION TO Prod_id INTO product,Supp_id INTO supplier
@ 10,5 SAY ' '
@ROW(),1 SAY "FAKTUR"
@ROW(),10 SAY "PRODUK"
@ROW(),20 SAY "SUPPLIER"
@ROW(),35 SAY "DISCOUNT"
SCAN
 ?
 @ROW(),1 SAY NO_FACT
 @ROW(),10 SAY a.PROD_NAME
 @ROW(),20 SAY b.SUPP_NAME
 @ROW(),25 SAY discount
ENDSCAN
CLOSE DATABASES

Hasilnya


PENJELASAN :
Pada waktu record pertama dari tabel master (INVOICE.DBF) diproses, isi field kunci relasi pertama akan dicatat. SET RELATION TO akan mencari nilai kunci ini ke dalam tabel anak (PRODUCT.DBF) dan kemudian menset agar penunjuk record menunjuk record pertama yang memilii nilai yang sesuai dengan nilai kunci tersebut.  Demikian pula untuk relasi kedua. SET RELATION akan mencari nilai kunci (INVOICE.DB) pada tabel anak (SUPPLIER).

0 comments:

About This Blog

Lorem Ipsum

  © Blogger templates Newspaper III by Ourblogtemplates.com 2008

Back to TOP