> Rekan2 aku punya data sbb :
> Nama    Alamat    Tgl_lahir    Gajih_kotor
> A        A         01/01/02     500000
> B        B         Nul         200000
> C        C         02/02/02     Nul
> pada saat aku ingin mengcopy beberapa rekord yang di inginkan proses 
> error pada saat di check ternyata karena adanya data Nul, please 
> mungkin ada rekan2 yang pernah mengalami hal seperti ini, bagaimana 
> pemecahannya.
Errornya apa? 
Apa maksudnya 'mengcopy beberapa rekord'? 
Dari tabel ke tabel lain?
Dari tabel ke komponen (memo, misalnya) ? 
What? 

Menurut saya ini bukan error, tetapi memang by design. 
Contohnya, saat anda proses Gajih_kotor (istilah anda diatas),
misalnya : 
...
        if (table1.fieldbyname('gajih_kotor').value > 10000000) then
begin
                Showmessage('anda makmur');
        end else begin
                Showmessage('anda belum beruntung, cobalah sekali
lagi!'); 
        end; 
...
Kalau ternyata di field gajih_kotor ditemui nilai NULL, program akan
mengalami runtime error message (exception EVariantError atau invalid 
Variant Conversion). As I said, this is by design.

Nilai NULL sendiri tidak sama dengan 0 atau '' (empty string), selama
ini banyak terjadi kesalahpahaman tentang ini. Sejauh ini NULL bisa
diartikan sebagai 'not available' atau 'not applicable' atau 'unknown',
tentu saja logic anda harus memperhitungkan hal ini. 

Tidak ada cara mudah untuk menghindari hal ini, malah kalau dari segi
relational database-nya, ini dinyatakan sebagai anomali dan kesalahan
design database. Bila salah satu field bisa NULL, maka harus dipecah
menjadi dua table atau lebih: 
...
        KODE; NAMA; ALAMAT; 
        ...
        KODE; GAJIH_KOTOR;
        ...
        KODE; TGL_LAHIR; 
...

Jadi tidak akan terjadi error yang anda sebutkan tadi. Semua akses 
harus lewat join, (misalnya 
select kode, nama, alamat, gajih_kotor
from t1, t2
where t1.Kode = t2.Kode)
Tidak ada nilai null disini. 

Tentu saja ini tidak praktis di real world. Anda punya beberapa 
alternatif : 
1. Paksakan tidak ada nilai null dari server-side. (misalnya dengan 
        default value, dan NOT NULL constraint).
2. Paksakan tidak ada nilai null dari client-side, seperti yang 
        sudah disebutkan sdr Agustono. Caranya bisa macam macam,
        dari If() sampai CAST().

> Agus statement yang aku pake mngkin seperti ini :
> table_baru.close;
> table_baru.commandtext:='insert into table_disimpan
> (nama,tgl_lahir,gaji_kotor) value(:vnama,vtgl_lahir,vgaji_kotor);
> table_baru.params.prambyname('vnama'):=...;
> table_baru.params.parambyname('vtgl_lahir'):=...;
> table_baru.params.parambyname('vgaji_kotor'):=...;
> table_baru.execute;
> itu kalo baru tiga field yang akan di pake kalo misalkan 25 field
> kalo harus pake IF apa tidak repot database, karena harus tutup dan 
> buka kembali untuk execute atau dari pengalaman Agus sendiri database 
> tidak terbebani. Mungkin bisalah nanti di coba atau ada statement 
> yang agak lebih simple namun padat isinya (hehehehe kaya iklan apa ya 
> aku lupa).
Kalau masalahnya untuk copy dari table ke table, rasanya tidak ada 
masalah untuk NULL karena implementasinya dengan Variant.
...
        table2.paramByName('vnama').value :=
table1.fieldbyname('vnama').value;
...

> Herman.
> NB: Untuk rekan2 yang lain mana nih kontribusinya.
Two points from me : 
1. Tidak sopan rasanya kalau anda mengeluarkan statement seperti ini.
        Milis delphindo diadakan dengan sukarela, dan semua yang
meluangkan 
        waktu disini adalah volunteer alias tidak dibayar. We are under
no
        obligation to provide anything. Ask politely, and maybe someone
will
        be able to help. But do not demand anything.
2. Kalau pertama kali tidak terjawab, ada baiknya kalau pertanyaan
dibuat
        lebih jelas/spesifik. Kadangkala bukannya tidak mau menjawab,
tapi 
        karena pertanyaannya terlalu luas, jadi tidak ada waktu untuk
menulis 
        panjang lebar. 

Salam,
sugi.



------------------------ Yahoo! Groups Sponsor ---------------------~-->
Get 128 Bit SSL Encryption!
http://us.click.yahoo.com/CBxunD/vN2EAA/xGHJAA/i7folB/TM
---------------------------------------------------------------------~->

Berlangganan: [EMAIL PROTECTED]
Stop Berlangganan: [EMAIL PROTECTED]
Keluhan Milis(Unbouncing,spam,dll): [EMAIL PROTECTED] 

Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/ 


Kirim email ke