Arsip: program multi user (duplicate primary key)
more 16 years ago
ricky_seldjatem
hallo... para master dephi.
saya sedang membuat program kepegawaian multi user dengan delphi 7 dan sql server 2000. namun saya mengalamai kendala pada saat ketika program data pegawai diinput pada saat yang bersamaan oleh 2 user, dimana untuk nomor pegawai saya buat otomatis. masalahnya pd saat tombol tambah ditekan dua2nya memiliki nomor pegawai yg sama, mis : P001, ini mengakibatkan duplikat primary key. nah bagaimana caranya ketika user 1 tekan tombol tambah P001 dan user 2 = P002 (sementara masih dalam proses input data / data belum disimpan oleh salah satu user) pada saat yg bersamaan agar data tersebut bisa disimpan ? terima kasih atas bantuannya
more 16 years ago
Manz
IMHO, lebih baik sih untuk key tersebut dibuatkan triggernya, jadi dalam server pasti ada perbedaan waktu meskipun hanya milisecond dalam proses saving nya...
just imho :mrgreen:
more 16 years ago
ricky_seldjatem
Kang Manz tolong kita dong contoh konkritnya. sebelumnya terima kasih atas bantuannya
more 16 years ago
andrewblack
kalau di bikinkan logbook? dibikinkan tabel khusus untuk nomor terakhir, sebelum menambah record minta data terakhir di logbook.
more 16 years ago
imunk
@ricky_seldjatem
proses simpan data menggunakan apa, query kah (insert into....) , table kah (table1.post), stored procedure kah (tau ndiri lah)... ??
masing2 punya caranya sendiri2.
more 16 years ago
ricky_seldjatem
procedure TFPegawai.SaveData;
begin
FrMenu.ADOCommand1.CommandText:='insert into pegawai values ('''+(nopeg.Text)+''','''+(nama.Text)+''','''+(alamat.Text)+''')';
FrMenu.ADOCommand1.Execute;
end
more 16 years ago
imunk
hmmm...
kalo aku gak salah tangkep (emang ayam ditangkep..:) )
nopeg itu menyimpan nomor pegawai kayak P001,P002, dst (halah emang iya liat aja namanya, kekeke...)
terus di atas bilangnya tuh nomor otomatis, berarti saat simpan data (atao saat loading formnya mungkin) program akan memunculkan nomor pegawai terakhir plus satu.
jika benar, mungkin usul dari @andrewblack bisa dipake.
more 16 years ago
ricky_seldjatem
betul sekal kang imunk, nah contoh konkritnya kang andrew black iyu seperti gimana ya (logbook), soalnya saya baru belajar delphi, inipun proyek pertama saya kang. terima kasih atas bantuannya.
nah ini function penomoron otomatisnya untuk nomor pegawai :
function TFPegawai.GetID: string;
begin
try FrMenu.ADOQuery.Close; except end;
FrMenu.ADOQuery.SQL.Text := 'select nopeg from pegawai where nopeg like ''PEG' + '' + FormatDateTime('yy',Now) + FormatDateTime('MM',Now) +'' + '%'' order by nopeg';
FrMenu.ADOQuery.Open;
if FrMenu.ADOQuery.RecordCount > 0 then
begin
FrMenu.ADOQuery.RecNo := FrMenu.ADOQuery.RecordCount;
Result := 'PEG' + FormatDateTime('yy',Now) + FormatDateTime('MM',Now) + FormatFloat('000',StrToInt(Copy(FrMenu.ADOQuery.Fields[0].AsString,8,3)) + 1);
end
else
Result := 'PEG' + FormatDateTime('yy',Now) + FormatDateTime('MM',Now) + '001';
end;
more 16 years ago
imunk
hmm....
@andrewblack
mungkin bisa ngejelasin lebih rinci yg dimaksud.
@ricky_seldjatem
kalo menurutku sih kayak gini:
buat satu tabel (t_nourut) dg satu field (nopeg) tipe integer.
function TFPegawai.GetID: string;
begin
try FrMenu.ADOQuery.Close; except end;
FrMenu.ADOQuery.SQL.Text := 'select nopeg from t_nourut';
FrMenu.ADOQuery.Open;
if FrMenu.ADOQuery.RecordCount > 0 then
begin
FrMenu.ADOQuery.RecNo := FrMenu.ADOQuery.RecordCount;
Result := 'PEG' + FormatDateTime('yy',Now) + FormatDateTime('MM',Now) + FormatFloat('000',FrMenu.ADOQuery.Fields[0].AsFloat);
//Query baru utk mengupdate tabel t_nourut
ADOQuery1.SQL.Text:='Update t_nourut set nopeg = nopeg + 1';
ADOQuery1.ExecSQL;
//-------------------------------------------------
end
else
Result := 'PEG' + FormatDateTime('yy',Now) + FormatDateTime('MM',Now) + '001';
//Query baru utk mengupdate tabel t_nourut
ADOQuery1.SQL.Text:='Insert into t_nourut values(1)';
ADOQuery1.ExecSQL;
//-------------------------------------------------
end;
gitu kira2, mudah2an membantu.
maaf kalo salah aku belum coba sih... :)
more 16 years ago
ricky_seldjatem
terima kasih kang sebelumnya. cuma maksud saya bagaimana caranya pada saat user A (Komputer1) dan user B (komputer2) membuka form yang sama misalnya form input data pegawai pada saat yang bersamaaan, tetapi user a menekan tombol tambah lebih cepat berapa milisecond dari user B menekan tombol tambah sehingga nomor pegawai user A = PEG0807001 dan user B = PEG0807002.
karena program saya pada saat ini ketika kedua user membuka form input data pegawai secara bersamaan user a dan user b menekan tombol tambah walaupun berbeda berapa milisecond maka nomor pegawai yang ada pada edit box kedua user tersebut berisi kode pegawai yang sama misalnya = PEG0807001
tabel pegawai
nopeg nvarchar 10
nama varchar 50
alamat nvarchar 150
atas bantuannya terima kasih
more ...
- Pages:
- 1
- 2
reply |
Report Obsolete
Last Articles
Last Topic
- PascalTalk #6: (Podcast) Kuliah IT di luar negeri, susah gak sih?
by LuriDarmawan in Tutorial & Community Project more 3 years ago - PascalTalk #5: UX: Research, Design and Engineer
by LuriDarmawan in Tutorial & Community Project more 3 years ago - PascalTalk #4: Obrolan Ringan Seputar IT
by LuriDarmawan in Tutorial & Community Project more 3 years ago - PascalTalk #2: Membuat Sendiri SMART HOME
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #3: RADically Fast and Easy Mobile Apps Development with Delphi
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #1: Pemanfaatan Artificial Intelligence di Masa Covid-19
by LuriDarmawan in Tutorial & Community Project more 4 years ago - Tempat Latihan Posting
by LuriDarmawan in OOT more 4 years ago - Archive
- Looping lagi...
by idhiel in Hal umum tentang Pascal Indonesia more 12 years ago - [ask] koneksi ke ODBC user Dsn saat runtime dengan ado
by halimanh in FireBird more 12 years ago - Validasi menggunakan data tanggal
by mas_kofa in Hal umum tentang Pascal Indonesia more 12 years ago
Random Topic
- Tampilan DBGRID
by xproof in Tip n Trik Pemrograman more 16 years ago - Ask: Left Join vs Left Outer Join
by cyber_hecker in MySQL more 19 years ago - analisa isi kolom buat database
by sandy in Tip n Trik Pemrograman more 16 years ago - Free Hosting Delphi-ID.Org
by LuriDarmawan in Hal umum tentang Pascal Indonesia more 19 years ago - SendKeys
by clark in Tip n Trik Pemrograman more 17 years ago - Sapa mau...
by eksant in OOT more 17 years ago - convert
by marsedho2005 in Enginering more 18 years ago - KOPI DARAT DELPHI-ID 2008
by gust4m4n in OOT more 16 years ago - Seorang cupu mo nanya nih
by alfian in Enginering more 18 years ago - Pagefooter pada quickreport Page/of
by am4tiranDelphian in Paradox more 16 years ago