Arsip: Mohon Bantuan ERROR CODE "$2601 (9729) = Key violation

more 15 years ago
crazy_einstein01
Bro, mohon pencerahan nih tentang data base maklum masih Newbie
ini salah satu bagian listing yang saya buat..... nah errornya di bagian ini jadi data basenya gak bisa di tambah
//Procedur menyiman data ...///
Procedure TLIQUIDS.BTN_SIMPANClikck(Sender:TObject);
Begin
{Menyimpan Data}
If BTN_BARU.Caption = 'BATAL' Then
Begin
If TBL_VISKOSITAS.Locate('VISKOSITAS', EDT_VISKOSITAS.Text,[loCaseInsesitive])
Then
Begin
ShowMessage('Data Pengukuran Sudah Pernah Diambil..!!)
BTN_BARU.Click;
EXIT;
End;
///Error di bagian yang di cetak tebal, klo program di run muncul error $2601 (9729) = Key violation.

more 15 years ago
indobrainsoft
trusannya mana..???
itu kan baru ceking..?? ...
menggunakan koneksi apa ..???
lost information

more 15 years ago
MrLee
key violation itu biasanya table yg mempunyai index dan di simpan lagi dgn data yg sama
jadi ada 2 data yg sama;
dari pada pakai locate mendingan pakai search buatan sendiri;
sama saja; delphi menterjemahkan nya dengan cara mencari satu persatu dr record 1
kalau program itu kamu sudah kamu paste dengan lengkap artinya ada kekurangan
2 buah end;
kalau emang ada indexnya lebih baik pakai findkey lebih cepat;

more 15 years ago
Thunder
Saya rasa salahnya bukan pada
If TBL_VISKOSITAS.Locate('VISKOSITAS', EDT_VISKOSITAS.Text,[loCaseInsesitive])
Then
sebaiknya anda gunakan proses tracing kesalahan, caranya tekan F5 pada baris pertama coding di
Procedure TLIQUIDS.BTN_SIMPANClikck(Sender:TObject);
lalu jalankan Delphi dengan menekan F9, lalu coba masukkan nilai dan jalankan BTN_Simpanclick sambil tekan tombol F7 step by step,
mungkin anda akan ketemu salahnya dimana...
Selamat mencoba

more 15 years ago
maulaku
menurutku sih karena duplikasi indeks
dilihat dari source codennya : bisa simpan dua kali
mungkin metode pencarianya
intik mengatasinya :
letakan scrip berikut di Table Post Error
const
eKeyViol = 9729;
eRequiredFieldMissing = 9732;
eForeignKey = 9733;
eDetailsExist = 9734;
eSqlGralerror = 13059;
implementation
{$R *.DFM}
procedure TForm1.Table1PostError(DataSet: TDataSet; E: EDatabaseError;
var Action: TDataAction);
begin
if (E is EDBEngineError) then
if (E as EDBEngineError).Errors[0].Errorcode = eKeyViol then
begin
Application.MessageBox('Duplikasi ...','Bahaya',mb_Ok +
mb_IconQuestion);
Abort;
end;
end;

more 15 years ago
crazy_einstein01
Trims atas segala sarannya, but saya masih bingung tentang edbenginge. apa edb engine error itu ada hubungannya sama Operating System 2000.

more 15 years ago
maulaku
@crazy_einstein01: Trims atas segala sarannya, but saya masih bingung tentang edbenginge. apa edb engine error itu ada hubungannya sama Operating System 2000.Menurutku sih ngga kalo errornya eKeyViol = 9729;

more 15 years ago
crazy_einstein01
@indobrainsoft: trusannya mana..??? itu kan baru ceking..?? ... menggunakan koneksi apa ..??? lost information:? :? :? :? :? // Para Senior yang terhormat ini listing lengkap saya, saran yang sudah dikasih saya coba satu persatu errornya masih sama// [list:17fedf0f04] unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, jpeg, ExtCtrls, Grids, DBGrids, DB, DBTables, Menus, ComCtrls; type TLIQUIDS = class(TForm) EDT_PANEL: TPanel; GAMBAR1: TImage; GAMBAR2: TImage; LBL_PANEL: TLabel; LBL_Massa: TLabel; EDT_Massa: TEdit; LBL_ATENT: TLabel; EDT_ATEN: TEdit; PopupMenu1: TPopupMenu; Timer1: TTimer; DTS_VISKOSI: TDataSource; TBL_VISKOSITAS: TTable; DBGrid1: TDBGrid; TBL_VISKOSITASNAMA: TStringField; TBL_VISKOSITASPRODUSEN: TStringField; TBL_VISKOSITASTANGGAL: TDateField; TBL_VISKOSITASVISKOSITAS: TFloatField; TBL_VISKOSITASKETERANGAN: TStringField; EDT_NAMA: TEdit; LBL_NAMA: TLabel; Label1: TLabel; EDT_KETER: TEdit; EDT_PRODUS: TEdit; EDT_VISKOSITAS: TEdit; LBL_TANGGAL: TLabel; EDT_TANGGAL: TDateTimePicker; LBL_VISKO: TLabel; LBL_KETER: TLabel; EDT_PANEL2: TGroupBox; BTN_AWAL: TButton; BTN_SEBELUM: TButton; BTN_LANJUT: TButton; BTN_AKHIR: TButton; BTN_BARU: TButton; BTN_HAPUS: TButton; BTN_TUTUP: TButton; BTN_EDIT: TButton; BTN_KEMBALI: TButton; BTN_ATENUASI: TButton; BTN_MASSA: TButton; Bevel1: TBevel; Bevel2: TBevel; label3: TLabel; LBL_JAM: TLabel; LBL_BULAN: TLabel; BTN_STOP: TButton; BTN_HITUNG: TButton; BTN_SIMPAN: TButton; procedure BTN_KEMBALIClick(Sender: TObject); procedure BTN_TUTUPClick(Sender: TObject); procedure BTN_BARUClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure BTN_EDITClick(Sender: TObject); procedure BTN_HAPUSClick(Sender: TObject); procedure BTN_AWALClick(Sender: TObject); procedure BTN_SEBELUMClick(Sender: TObject); procedure BTN_LANJUTClick(Sender: TObject); procedure BTN_AKHIRClick(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure BTN_HITUNGClick(Sender: TObject); procedure BTN_STOPClick(Sender: TObject); procedure BTN_SIMPANClick(Sender: TObject); private { Private declarations } public procedure BERSIH; Procedure TAMPIL_DATA; Procedure ATUR_TOMBOL(AKTIF:BOOLEAN); Procedure TulisPort(Addr:word; data:byte); function bacaport(Addr:word):byte; { Public declarations } end; var LIQUIDS: TLIQUIDS; Const f = 40000; implementation Uses Unit1; {$R .dfm} Procedure TLIQUIDS.BERSIH; Begin EDT_NAMA.Text := ' '; EDT_PRODUS.Text := ' '; EDT_TANGGAL.DateTime := DATE; EDT_VISKOSITAS.Text := ' '; EDT_KETER.Text:= ' '; end; Procedure TLIQUIDS.TAMPIL_DATA; Begin EDT_NAMA.Text := TBL_VISKOSITASNAMA.AsString; EDT_PRODUS.Text := TBL_VISKOSITASPRODUSEN.AsString; EDT_TANGGAL.DateTime := TBL_VISKOSITASTANGGAL.AsDateTime; EDT_VISKOSITAS.Text := TBL_VISKOSITASVISKOSITAS.AsString; EDT_KETER.Text := TBL_VISKOSITASKETERANGAN.AsString; end; Procedure TLIQUIDS.ATUR_TOMBOL(AKTIF:BOOLEAN); Begin EDT_NAMA.Enabled:= AKTIF; EDT_PRODUS.Enabled := AKTIF; EDT_TANGGAL.Enabled := AKTIF; EDT_VISKOSITAS.Enabled := AKTIF; EDT_KETER.Enabled := AKTIF; BTN_AWAL.Enabled := Not AKTIF; BTN_LANJUT.Enabled := Not AKTIF; BTN_SEBELUM.Enabled := Not Aktif; BTN_AKHIR.Enabled := Not AKTIF; END; function TLIQUIDS.bacaport(Addr:Word):byte; var tmp:byte; begin asm mov dx,addr; in ax,dx; mov tmp,al; end; bacaport:=tmp; end; procedure TLIQUIDS.TulisPort(Addr:Word; data:byte); begin asm mov dx,addr; mov al,Data; out dx,al; end; end; procedure TLIQUIDS.BTN_KEMBALIClick(Sender: TObject); begin If BTN_KEMBALI.Enabled then DEPAN.Show; end; procedure TLIQUIDS.BTN_TUTUPClick(Sender: TObject); begin If BTN_TUTUP.Enabled then application.Terminate; end; procedure TLIQUIDS.BTN_BARUClick(Sender: TObject); begin If BTN_BARU.Caption = 'BARU' then begin BTN_BARU.Caption := 'BATAL'; BTN_EDIT.Enabled := False; BTN_SIMPAN.Enabled := True; BTN_HITUNG.Enabled := True; BTN_STOP.Enabled := True; BTN_HAPUS.Enabled := False; BTN_TUTUP.Enabled := False; BTN_KEMBALI.Enabled := False; ATUR_TOMBOL(TRUE); BERSIH; EDT_NAMA.SetFocus; End Else Begin BTN_BARU.Caption := 'BARU'; BTN_EDIT.Enabled := True; BTN_SIMPAN.Enabled := False; BTN_HITUNG.Enabled := False; BTN_STOP.Enabled := False; BTN_TUTUP.Enabled := True; BTN_KEMBALI.Enabled := True; LIQUIDS.FormCreate(Self); end; end; procedure TLIQUIDS.FormCreate(Sender: TObject); begin IF TBL_VISKOSITAS.Active = FALSE THEN TBL_VISKOSITAS.Active := TRUE; ATUR_TOMBOL(FALSE); TAMPIL_DATA; LBL_JAM.Caption := FormatDateTime('hh:mm:ss',time); LBL_BULAN.Caption := FormatDateTime('dd-mm-yyyy',date); end; procedure TLIQUIDS.BTN_EDITClick(Sender: TObject); begin If BTN_EDIT.Caption = 'EDIT' then Begin BTN_EDIT.Caption := 'BATAL'; BTN_BARU.Enabled := False; BTN_HAPUS.Enabled := False; BTN_SIMPAN.Enabled := True; BTN_HITUNG.Enabled := True; BTN_STOP.Enabled := True; BTN_TUTUP.Enabled := False; BTN_KEMBALI.Enabled := False; ATUR_TOMBOL(True); EDT_NAMA.SetFocus; End Else Begin BTN_EDIT.Caption := 'EDIT'; BTN_BARU.Enabled := True; BTN_HAPUS.Enabled := True; BTN_HITUNG.Enabled := False; BTN_STOP.Enabled := False; BTN_SIMPAN.Enabled := False; BTN_TUTUP.Enabled := True; BTN_KEMBALI.Enabled := True; LIQUIDS.FormCreate(Self); End; end; procedure TLIQUIDS.BTN_HAPUSClick(Sender: TObject); begin If BTN_HAPUS.Caption = 'HAPUS' then Begin BTN_HAPUS.Caption := 'BATAL'; BTN_SIMPAN.Caption := 'SIMPAN'; BTN_BARU.Enabled := False; BTN_EDIT.Enabled := False; BTN_HITUNG.Enabled := False; BTN_STOP.Enabled := False; BTN_SIMPAN.Enabled := True; BTN_TUTUP.Enabled := False; BTN_KEMBALI.Enabled := False; End Else Begin BTN_HAPUS.Caption := 'HAPUS'; BTN_SIMPAN.Caption := 'SIMPAN'; BTN_BARU.Enabled := True; BTN_EDIT.Enabled := True; BTN_SIMPAN.Enabled := False; BTN_HITUNG.Enabled := False; BTN_STOP.Enabled := False; BTN_TUTUP.Enabled := True; BTN_KEMBALI.Enabled := True; LIQUIDS.FormCreate(Self); End; end; procedure TLIQUIDS.BTN_AWALClick(Sender: TObject); begin TBL_VISKOSITAS.First; TAMPIL_DATA; end; procedure TLIQUIDS.BTN_SEBELUMClick(Sender: TObject); begin TBL_VISKOSITAS.Prior; TAMPIL_DATA; end; procedure TLIQUIDS.BTN_LANJUTClick(Sender: TObject); begin TBL_VISKOSITAS.Next; TAMPIL_DATA; end; procedure TLIQUIDS.BTN_AKHIRClick(Sender: TObject); begin TBL_VISKOSITAS.Last; TAMPIL_DATA; end; procedure TLIQUIDS.Timer1Timer(Sender: TObject); Var Data:Byte; M,A:Integer; {Konstanta Massa Jenis dan Atenuasi} v,n:real; begin Asm mov dx,$37A {Mengaktifkan Port Paralell Bidirectional Mode} Mov al,32d {Mode Bidirectional pada SPP} Out dx,al {Membuat nilai Bit ke 5 Aktif} ; Mov dx,$378 {Mengakses Port Printer alamat Default 378H} in al,dx mov data,al {Mengisi Port Printer dengan data} end; v := (20/100)/data; M := StrToInt(EDT_Massa.Text); A := StrToInt(EDT_ATEN.Text); n := (M A(v vv))/(26.3 f*f); EDT_VISKOSITAS.Text := floattostr(n); end; procedure TLIQUIDS.BTN_HITUNGClick(Sender: TObject); begin If BTN_HITUNG.Enabled then Timer1.Enabled := true; end; procedure TLIQUIDS.BTN_STOPClick(Sender: TObject); begin If BTN_STOP.Enabled then Timer1.Enabled := false; end; procedure TLIQUIDS.BTN_SIMPANClick(Sender: TObject); begin If BTN_BARU.Caption = 'BATAL' then {Menyimpan Data} Begin if TBL_VISKOSITAS.Locate('KETERANGAN',EDT_KETER.Text,[loCaseInsensitive]) then Begin showmessage('Data Sudah Pernah Di Ambil.....!!!'); BTN_BARU.Click; exit; end; TBL_VISKOSITAS.Append; TBL_VISKOSITASNAMA.AsString := EDT_NAMA.Text; TBL_VISKOSITASPRODUSEN.AsString := EDT_PRODUS.Text; TBL_VISKOSITASTANGGAL.AsDateTime := EDT_TANGGAL.DateTime; TBL_VISKOSITASVISKOSITAS.AsString := EDT_VISKOSITAS.Text; TBL_VISKOSITASKETERANGAN.AsString := EDT_KETER.Text; TBL_VISKOSITAS.Post; BTN_BARU.Click; EXIT; END; {Melakukan Edit data} If BTN_EDIT.Caption = 'BATAL' Then Begin TBL_VISKOSITAS.Edit; TBL_VISKOSITASNAMA.AsString := EDT_NAMA.Text; TBL_VISKOSITASPRODUSEN.AsString := EDT_PRODUS.Text; TBL_VISKOSITASTANGGAL.AsDateTime := EDT_TANGGAL.DateTime; TBL_VISKOSITASVISKOSITAS.AsString := EDT_VISKOSITAS.Text; TBL_VISKOSITASKETERANGAN.AsString := EDT_KETER.Text; TBL_VISKOSITAS.Post; BTN_EDIT.Click; EXIT; END; {Hapus Data} If BTN_HAPUS.Caption = 'BATAL' Then Begin TBL_VISKOSITAS.Delete; BTN_HAPUS.Click; EXIT; END; end; end. [/list:u:17fedf0f04] Mohon Pencerahannya..... masih newbie sekali soal database..... saya menggunakan koneksi database paradoks

more 15 years ago
zieborg
procedure TLIQUIDS.BTN_SIMPANClick(Sender: TObject); begin If BTN_BARU.Caption = 'BATAL' then {Menyimpan Data} Begin if TBL_VISKOSITAS.Locate('KETERANGAN',EDT_KETER.Text,[loCaseInsensitive]) then Begin showmessage('Data Sudah Pernah Di Ambil.....!!!'); BTN_BARU.Click; exit; end;procedure kamu yg ini yang bikin masalah. bila data sudah terisi, trus kamu jalankan perintah locate,next,previous dll, itu sama dg perintah post, karena berpindah record. untuk pengecekan agar tidak berpindah record gunakan lookup, pelajari perintah lookup. good luck!

more 15 years ago
crazy_einstein01
@zieborg:klo bagian ini di hilangkan pengaruhnya dimana dah saya coba hilangkan masih error juga terima kasih atas supportnyaprocedure TLIQUIDS.BTN_SIMPANClick(Sender: TObject); begin If BTN_BARU.Caption = 'BATAL' then {Menyimpan Data} Begin if TBL_VISKOSITAS.Locate('KETERANGAN',EDT_KETER.Text,[loCaseInsensitive]) then Begin showmessage('Data Sudah Pernah Di Ambil.....!!!'); BTN_BARU.Click; exit; end;procedure kamu yg ini yang bikin masalah. bila data sudah terisi, trus kamu jalankan perintah locate,next,previous dll, itu sama dg perintah post, karena berpindah record. untuk pengecekan agar tidak berpindah record gunakan lookup, pelajari perintah lookup. good luck!
more ...
- Pages:
- 1
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 2 years ago - PascalTalk #5: UX: Research, Design and Engineer
by LuriDarmawan in Tutorial & Community Project more 2 years ago - PascalTalk #4: Obrolan Ringan Seputar IT
by LuriDarmawan in Tutorial & Community Project more 2 years ago - PascalTalk #2: Membuat Sendiri SMART HOME
by LuriDarmawan in Tutorial & Community Project more 2 years ago - PascalTalk #3: RADically Fast and Easy Mobile Apps Development with Delphi
by LuriDarmawan in Tutorial & Community Project more 2 years ago - PascalTalk #1: Pemanfaatan Artificial Intelligence di Masa Covid-19
by LuriDarmawan in Tutorial & Community Project more 2 years ago - Tempat Latihan Posting
by LuriDarmawan in OOT more 3 years ago - Archive
- Looping lagi...
by idhiel in Hal umum tentang Pascal Indonesia more 10 years ago - [ask] koneksi ke ODBC user Dsn saat runtime dengan ado
by halimanh in FireBird more 10 years ago - Validasi menggunakan data tanggal
by mas_kofa in Hal umum tentang Pascal Indonesia more 10 years ago
Random Topic
- gimana supaya 0 -> - di fastreport ?
by slamet_linux in Reporting more 14 years ago - Fast Report dalam EXE ?
by himen81 in Hal umum tentang Pascal Indonesia more 16 years ago - Mohon Triknya Dong.....
by umarbakri in Hal umum tentang Pascal Indonesia more 16 years ago - Tanya Quick Report??
by gold3n_b0y in Hal umum tentang Pascal Indonesia more 16 years ago - treeview load dari database?
by alvonz in OOT more 14 years ago - Layar Sentuh :: Touch Screen
by Tbawor in Enginering more 16 years ago - masalah di fastreport3
by esafm in Tip n Trik Pemrograman more 16 years ago - cara mengkonvert tabel dari currency ke string
by pinguinz in Tutorial & Community Project more 15 years ago - tipikal programmer indonesia
by simba in OOT more 17 years ago - folder browser dialog
by rey1024 in Tip n Trik Pemrograman more 15 years ago