Arsip: Simpan Record Baru secara bersamaan

 
user image
more 13 years ago

hendra74

Dear All, wah ini forum OK banget boooo.... thanks banget anyway rekan2 saya mo tanya nich. saya ada masalah dalam penyimpanan record secara bersamaan mohon petunjuknya. masalahnya adalah ketika user secara bersamaan menikan button "Save" dan saya pake parameter nomor terakhir di tambah 1, atau last record+1. makan secara langsung pasti ada duplikasi nomor. apakan teman2 semua ada saran. Thanks sebelumnya. Regards, Hendra
user image
more 13 years ago

MrLee

last record harus di cek ulang sebelum melakukan save; atu gunakan auto number (auto increment) sehingga nomor nya tidak ada yg sama
user image
more 13 years ago

DelphiExpert

hehe... jangan pake nomor terakhir di client (buffer record), tapi gunakan get+inc 1 pada server side :) hal ini bisa menggunakan sequence (kalau support), atau fungsi sendiri dng meniru cara kerja sequence. yakni: 1. lock table for read+write 2. baca data LAST_AUTOINC:= DataSet.Fields[0].AsInteger; 3. Increment data tsb: Edit; DataSet.Fields[0].AsInteger + DataSet.Fields[0].AsInteger + 1; Post; 4. un-lock table dng mekanisme tsb dijamin tidak akan ada yg mendapat nilai sama... ;)
user image
more 13 years ago

ImanD

bisa juga pengkodean dilakukan saat akan SAVE! bisa juga gunakan sistem antrian atw manfaatkan begintrans, commit;
user image
more 13 years ago

hendra74

masalahnya saya insert record tersebut menggunakan query : adoquery1.sql.add('insert into table blablabbla') - memang sebelumnya saya coding dulu untuk penomorannya dengan menggunakan parameter yang sudah disediakan di table numerator. tapi ketika user menekan tombol save bersamaan. ya itulah yang terjadi. duplikasi. thanks. :lol:
user image
more 13 years ago

hendra74

jika menggunakan autoincrement saya tidak bisa memakai nomor/id yang saya inginkan.
user image
more 13 years ago

hendra74

atau ada rekan2 yang punya contoh ? :) thanks
user image
more 13 years ago

mas_kofa

jika menggunakan autoincrement saya tidak bisa memakai nomor/id yang saya inginkan.
emang sampean inginnya yg kaya apa??? tuh ada tiga kemungkinan yg ditawarkan 1. tawaran Mr Lee 2. tawaran DE 3. dan tawaran ImanD sorry aku gak memberikan tawaran......cause aku stupid....
user image
more 13 years ago

vikraa

salam, @hendra74 tawaran dari rekan @MrLee, @DE, @ImanD sepertinya sudah memberi solusi yang bagus. hanya sedikit menambahkan, mungkin maksud @hendra begini : "id nya bisa diinput sesuai keiinginan dan id nya increment dan tidak ada duplikasi" klo sperti itu kira kira begini ceritanya : 1. Input : format id yang diinginkan + inc(no_id) --> dalam satu field 2. Cari di dalam tabel apakag Input "format id yang diinginkan + inc(no_id)" itu sudah ada atau belum di di tabel 3. klo belum ada eksekusi sql insert bla...bla...bla.... 4. klo sudah ada tampilkan warning "ID sudah ada" maaf klo ada yang salah
user image
more 13 years ago

betamax

variabel nya di kenalin sendiri yah.. trus komponen nya di buatin sendiri yah..:P males misahin dari listing.. moga moga nyambung... kalo ga maab, piss... :P nih logik dasarnya kalo pake tabel manuwal.. kalo pake query tinggal di ganti. variabel di tampung dulu baru di sertakan ke query. nih no bisa sampe 9999 .. klo mo di coba lagi If jumdigit nya tinggal di tambahin lagi kondisi ..5...6...7.. trus dan trus dan trus dan trus... Table1.FieldValues['ID_Kelompok'] := Combobox2.Text; IF Table1.RecordCount = 0 then Begin NoKe := '0001'; EditID_Petani.Text := NoKe; Label8.Caption := Combobox1.Text + '.' + Combobox2.Text + '.' + NoKe; Exit; end; IF Table1.RecordCount > 0 then Begin JumDigit := InttoStr(length(IntToStr(StrToINt(NoLast)))); If JumDigit = '1' then begin Nolnya := '000'; end; If JumDigit = '2' then begin Nolnya := '00'; end; if JumDigit = '3' then begin Nolnya := '0'; end; if JumDigit = '4' then begin Nolnya := ''; end; NoKe := InttoStr(StrToInt(NoLast) + 1); IF StrToInt(NoLast) + 1 = 10 then Nolnya := '00'; IF StrToInt(NoLast) + 1 = 100 then Nolnya := '0'; IF StrToInt(NoLast) + 1 = 1000 then Nolnya := ''; VNo_Anggota := Nolnya + NoKe; EditID_Petani.Text := VNo_Anggota; Label8.Caption := Combobox1.Text + '.' + Combobox2.Text + '.' + VNo_Anggota; end;
more ...
  • Pages:
  • 1
  • 2
  • 3
Share to

Random Topic

Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com