Mas Faridh, Logikanya menurut anda memang betul, tapi salah menurut Oracle. 1. SELECT ...INTO.. FROM hanya betul kalau record yg dikembalikan cuma satu record. Nggak boleh kurang nggak boleh lebih. Harga pas, SATU. Nggak boleh ditawar lagi. Jadi pada contoh yg anda berikan akan menghasilkan error: TOO MANY ROWS.
2. Di Oracle urutan pengembalian data tidak selalu sama dengan urutan pemasukan data (pada saat insert).Jadi sebaiknya gunakan ORDER BY supaya urutannya sesuai dgn yg diinginkan. Solusi: 1. Tambahkan flag column. Yg mana nilainya akan sebut saja "1" apabila sedang dipakai/edit oleh user, "0" apabila sudah di release. 2. Tambahkan ROWNUM=1 pada where clause untuk memastikan record yg diambil hanya 1. Dan juga tambahkan where flag_column=0. Dan ORDER BY supaya urutannya sesuai dgn yg diinginkan. 3. Tambahkan exception, kalau tidak ada record yg bisa di pegang(misal: ada 4 record dan diakses oleh lebih dari 4 user sekaligus, maka user ke 5,6,7... tidak akan mendapatkan record) 4. Kalau anda menggunakan Oracle Form, apabila ada sebuah record diedit/lock oleh seseorang, maka user lain tidak bisa mengeditnya. Utk ini gunakan WHEN-NEW-RECORD-INSTANCE ...isinya lock record ybs. 5. ...???... cmiiw, Bowo --- In [email protected], Faridh Wisanggeni <faridh_wisangg...@...> wrote: > > Dear All, > > Mohon bantuannya, ini saya ada case untuk mengambil data nomor dari suatu > table > > table1 > Nomor Nama ORG > 35689 Junaidi 100 > 35856 Indra 100 > 35999 Syaifudin 100 > 35556 Joni 100 > > Jika kita ingin menginput field nomor pada textitem maka querynya adalah sbb : > > begin > Select nomor into TEXTITEM21.TEXT from Table1 where org=100; > > end; > > Logikanya adalah si TEXTITEM21 tersebut pasti isinya 35689 karena itu > merupakan row paling pertama. > Namun jika usernya lebih dari 1. Dan semua user tersebut melakukan klik data > (menjalankan query diatas) > Tentunya si user akan sama-sama mendapatkan nomor 35689, dimana seharusnya si > user yg lain dapat nomor lain yang belum dibuka oleh user pertama. > > Kira-kira dari para master adakah sharing knowledgenya > Supaya setiap user punya nomor yg belum dibuka (di select) oleh user lain > Jadi pada saat user 1 menselect data maka dia akan dapat 35689 > Lalu pada saat user 2 menselect data maka dia akan dapat 35856 dst. > > > Mohon bantuannya yach.... > > > Faridh Wisanggeni > > > > > [Non-text portions of this message have been removed] >

