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

more 17 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 17 years ago
indobrainsoft
trusannya mana..???
itu kan baru ceking..?? ...
menggunakan koneksi apa ..???
lost information

more 17 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 17 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 17 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 17 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 17 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 17 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 17 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 17 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
AI Forward

🚀 We're thrilled to partner with Alibaba Cloud for "AI Forward - Alibaba Cloud Global Developer Summit 2025" in Jakarta! Join us and explore the future of AI. Register now:
https://int.alibabacloud.com/m/1000400772/
#AlibabaCloud #DeveloperSummit #Jakarta #AIFORWARD
Last Articles
Last Topic
- PascalTalk #6: (Podcast) Kuliah IT di luar negeri, susah gak sih?
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #5: UX: Research, Design and Engineer
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #4: Obrolan Ringan Seputar IT
by LuriDarmawan in Tutorial & Community Project more 4 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 5 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
- Teknik Client-Sever Buat Koneksi Ke Finger Print
by ikhsan_pratama in Network, Files, I/O & System more 17 years ago - ASK: TMS TAdvColumnGrid
by batozai in Form Enhancement & Graphical Controls more 13 years ago - combo box
by prie in Tip n Trik Pemrograman more 15 years ago - About FastReport.....???
by ivan_delphi7 in Reporting more 17 years ago - Menghilangkan efek kedip pada tabsheet?
by johnizzy in Tip n Trik Pemrograman more 16 years ago - error object
by goehsatrio in Bedah Kasus more 16 years ago - BUBER: Bewara Delphi-ID.ORG & Pascal-ID.ORG (Local Bandu
by Manz in OOT more 14 years ago - Cara mudah untuk Memasukkan TIMage ke Array?
by ivan in Hal umum tentang Pascal Indonesia more 17 years ago - Grouping pada quick report
by maximus in Reporting more 17 years ago - dbgrid lagi
by javaman in Hal umum tentang Pascal Indonesia more 18 years ago