Arsip: Searching data di batch

 
user image
more 13 years ago

buyungff

para master delphi, saya mohon pertolongannya....please.... saya lagi coba buat program aplikasi database ( pake mssql ) dengan dbgrid sebagai interface untuk input ( biar mirip seperti excell gitu... ), trus saya pake adoquery dengan locktype-nya BatchOptimistic, trus saya mencoba membuat script untuk validasi apakah kode barang yang saya masukkan tidak boleh sama ( klo sama keluar msg-nya ) : event onvalidate qbarangkd_barang //AMBIL DATA YANG BARUD DI ISIKAN tempkd:=Qbarangkd_jur.Value; //STARt LOCATE DATA DI TABEL barang MENGGUNAKAN QUERY if Qbarang.locate('kd_jur',tempkd,) then begin messagedlg('Data Sudah Ada',MtError,[mbok],0); qbarang.Cancel; end; tapi saat saya coba ada error : stack overflow mohon bantuannya....thanks
user image
more 13 years ago

DelphiExpert

xixix... setiap kali dataset pindah cursor, event OnValidate akan dipanggil. sehingga jika dikau panggil QBarang (Dataset yg sama).Locate otomatis posisi cursor akan berubah, sehingga timbullah recursive call (karena cursor terpindah, event yg sama (OnValidate) akan dipanggil lagi, demikian seterusnya); yg pasti akan mengakibatkan stack overflow ... perulangan yg tiada akhir... solusinya: jangan lakukan validasi on-the-fly, alias habis edit langsung validasi. tetapi validasi dilakukan pd saat akan mem-flush (BatchUpdate) dataset tsb...
user image
more 13 years ago

vikraa

mudah2an ini bisa membantu : event onvalidate qbarangkd_barang //AMBIL DATA YANG BARUD DI ISIKAN tempkd:=Qbarangkd_jur.Value; //STARt LOCATE DATA DI TABEL barang MENGGUNAKAN QUERY if Qbarang.locate('kd_jur',tempkd,[lopartialkey ]) then {atau locaseinsensitive} begin messagedlg('Data Sudah Ada',MtError,[mbok],0); qbarang.Cancel; end;
user image
more 13 years ago

hendrang

supaya tidak terjadi stack overflow bisa ditambahkan perintah qbarangkd_barang.onvalidate:= Nil; sebelum locate. dan kembalikan ke nilai semula sebelum exit dari proc onvalidate. qbarangkd_barang.onvalidate:= <nama procedure onvalidate>; Untuk mengecek apakah Kode barang sudah ada atau belum sebaiknya dilakukan dengan query yang lain, kalau pakai query yang sama kayaknya pasti Locatenya akan return TRUE karena apa yang baru diisi juga ketemu pada saat locate.
user image
more 13 years ago

DelphiExpert

saran @hendrang bisa digunakan; dng catatan perpindahan cursor dan perubahan DataState tidak mempengaruhi proses...
more ...
  • Pages:
  • 1
Share to
Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com