Firebird iki veri yığınında aynı veya farklı kayıtları bulma
#1
Merhaba, Geçen seferki trigger örneğinin ardından bu sefer daha ilginç ve daha fazla kişi tarafından ihtiyaç duyulacak bir kod üzerinde duracağım. İster programcı olun ister bilgi işlemci eğer bilişim sekteründe çalışıyorsanız tahminimce mutlaka bir gün bu koda ihtiyacınız olacaktır. Çünkü patronunuz, muhasebeciniz, kaliteciniz, çaycınız bir gün karşınıza çıkıp şu iki excel dosyasında aynı olan kayıtlar ile farklı olan kayıtları birbirinden ayırırmısın gibi bir soru soracaklardır. Bu işleme sap ile samanı ayırma işlemi diyebiliriz. İhtiyaç olduça fazla olduğundan bu tür işler için kullanılacak yöntemde oldukça fazladır. Mesela ben yıllar önce kaptan mağra adamı yöntemi ismini verdiğim iç içe iki tane for dongüsü ve paradox veri tabanı ile bu sorunu çözmüştüm. İşlemin tamamlanması yaklaşık iki gün kadar sürdü. Döngü tamamlandığında sonuçtan çok süreye hayran kalmıştım. Ama neticede tüm kayıtları çok sağlıklı bir şekilde ayırdım. Progamı yazma süresi ise oldukça kısa bir zaman sürmüştü. Aslına bakarsanız Firebird de benim yaptığım for dögüsüne benzer bir şekilde olayı çözüyor. Aradaki hız farkını biraz uğraşsam bende kapatabilirdim fakat bu sefer programı yazmam iki gün çalışma süresi iki dakika sürerdi. Sql veri kümeleri üzerinde işlem yapmak için geliştirilmiş bir sistem olmasından dolayı butür işlemleri en kestirme yoldan yapıp geçer. Uzun lafın kısası amarika yı yeniden keşfetmeye gerek yok. Veri yığınları üzerinde işlem yapılacaksa sql kullanmak en mantıklı çözüm.
Şimdi yapacağımız kod ile ilgili bir sistem analizi yapalım.
İhtiyacımız olan
2 adet tablo
2 adet view
Tabloları veri 1 veri 2 gibi karşılaştırma yapılacak verileri saklamak için kullanacağız.
View ler ise
1. view iki tablo arasındaki aynı kayıtları bulacak
2. view ise ili tablo arasındaki farklı kayıtları bulacak
Not : Çalışmaları Firebird 2.5 doayası olarak yüklüyorum daha düşük sürümlerde ods hatası verir ve çalışmaz.

FIREBIRD is not a supported langage
List of available langages :
php, smarty, cuesheet, div, q, mapbasic, gambas, cfdg, netrexx, css, freeswitch, z80, java5, sparql, falcon, asymptote, dot, mxml, plsql, fsharp, dcpu16, vala, basic4gl, qbasic, clojure, oobas, powershell, rails, diff, pli, freebasic, sas, stonescript, scheme, latex, f1, pascal, 6502kickass, bnf, llvm, klonecpp, povray, applescript, python, coffeescript, progress, html4strict, postgresql, lua, newlisp, lisp, unicon, cadlisp, asm, vba, oxygene, modula2, urbi, go, gnuplot, m68k, vbnet, euphoria, spark, xorg_conf, properties, lolcode, oberon2, xbasic, avisynth, yaml, vhdl, cpp, logtalk, powerbuilder, gml, perl, icon, sdlbasic, fo, ocaml-brief, mmix, providex, pic16, klonec, abap, gwbasic, nagios, pike, genero, purebasic, zxbasic, haxe, lotusformulas, awk, visualfoxpro, cobol, pcre, ocaml, apt_sources, chaiscript, autoconf, j, intercal, 68000devpac, xml, asp, lotusscript, bascomavr, genie, tcl, prolog, upc, rebol, octave, nsis, groovy, cil, mirc, smalltalk, oracle11, pycon, mpasm, dos, rsplus, c, locobasic, ini, bash, d, javascript, vedit, magiksf, thinbasic, lb, parasail, proftpd, whitespace, oz, whois, teraterm, 4cs, actionscript, csharp, apache, make, objc, boo, fortran, delphi, oorexx, idl, ecmascript, visualprolog, algol68, verilog, html5, caddcl, haskell, uscript, blitzbasic, rpmspec, java, rexx, scilab, bibtex, ldif, inno, c_loadrunner, hq9plus, perl6, erlang, gdb, kixtart, vim, oracle8, reg, dcs, typoscript, per, hicest, objeck, eiffel, mysql, actionscript3, parigp, pys60, 6502acme, lscript, epc, gettext, scala, tsql, lsl2, matlab, autoit, pf, xpp, robots, ruby, cmake, ada, systemverilog, winbatch, c_mac, jquery, text, e, io, php-brief, pixelbender, modula3, glsl, autohotkey, email, cfm, bf, sql, 6502tasm, arm, dcl, cpp-qt

FIREBIRD is not a supported langage
List of available langages :
php, smarty, cuesheet, div, q, mapbasic, gambas, cfdg, netrexx, css, freeswitch, z80, java5, sparql, falcon, asymptote, dot, mxml, plsql, fsharp, dcpu16, vala, basic4gl, qbasic, clojure, oobas, powershell, rails, diff, pli, freebasic, sas, stonescript, scheme, latex, f1, pascal, 6502kickass, bnf, llvm, klonecpp, povray, applescript, python, coffeescript, progress, html4strict, postgresql, lua, newlisp, lisp, unicon, cadlisp, asm, vba, oxygene, modula2, urbi, go, gnuplot, m68k, vbnet, euphoria, spark, xorg_conf, properties, lolcode, oberon2, xbasic, avisynth, yaml, vhdl, cpp, logtalk, powerbuilder, gml, perl, icon, sdlbasic, fo, ocaml-brief, mmix, providex, pic16, klonec, abap, gwbasic, nagios, pike, genero, purebasic, zxbasic, haxe, lotusformulas, awk, visualfoxpro, cobol, pcre, ocaml, apt_sources, chaiscript, autoconf, j, intercal, 68000devpac, xml, asp, lotusscript, bascomavr, genie, tcl, prolog, upc, rebol, octave, nsis, groovy, cil, mirc, smalltalk, oracle11, pycon, mpasm, dos, rsplus, c, locobasic, ini, bash, d, javascript, vedit, magiksf, thinbasic, lb, parasail, proftpd, whitespace, oz, whois, teraterm, 4cs, actionscript, csharp, apache, make, objc, boo, fortran, delphi, oorexx, idl, ecmascript, visualprolog, algol68, verilog, html5, caddcl, haskell, uscript, blitzbasic, rpmspec, java, rexx, scilab, bibtex, ldif, inno, c_loadrunner, hq9plus, perl6, erlang, gdb, kixtart, vim, oracle8, reg, dcs, typoscript, per, hicest, objeck, eiffel, mysql, actionscript3, parigp, pys60, 6502acme, lscript, epc, gettext, scala, tsql, lsl2, matlab, autoit, pf, xpp, robots, ruby, cmake, ada, systemverilog, winbatch, c_mac, jquery, text, e, io, php-brief, pixelbender, modula3, glsl, autohotkey, email, cfm, bf, sql, 6502tasm, arm, dcl, cpp-qt

FIREBIRD is not a supported langage
List of available langages :
php, smarty, cuesheet, div, q, mapbasic, gambas, cfdg, netrexx, css, freeswitch, z80, java5, sparql, falcon, asymptote, dot, mxml, plsql, fsharp, dcpu16, vala, basic4gl, qbasic, clojure, oobas, powershell, rails, diff, pli, freebasic, sas, stonescript, scheme, latex, f1, pascal, 6502kickass, bnf, llvm, klonecpp, povray, applescript, python, coffeescript, progress, html4strict, postgresql, lua, newlisp, lisp, unicon, cadlisp, asm, vba, oxygene, modula2, urbi, go, gnuplot, m68k, vbnet, euphoria, spark, xorg_conf, properties, lolcode, oberon2, xbasic, avisynth, yaml, vhdl, cpp, logtalk, powerbuilder, gml, perl, icon, sdlbasic, fo, ocaml-brief, mmix, providex, pic16, klonec, abap, gwbasic, nagios, pike, genero, purebasic, zxbasic, haxe, lotusformulas, awk, visualfoxpro, cobol, pcre, ocaml, apt_sources, chaiscript, autoconf, j, intercal, 68000devpac, xml, asp, lotusscript, bascomavr, genie, tcl, prolog, upc, rebol, octave, nsis, groovy, cil, mirc, smalltalk, oracle11, pycon, mpasm, dos, rsplus, c, locobasic, ini, bash, d, javascript, vedit, magiksf, thinbasic, lb, parasail, proftpd, whitespace, oz, whois, teraterm, 4cs, actionscript, csharp, apache, make, objc, boo, fortran, delphi, oorexx, idl, ecmascript, visualprolog, algol68, verilog, html5, caddcl, haskell, uscript, blitzbasic, rpmspec, java, rexx, scilab, bibtex, ldif, inno, c_loadrunner, hq9plus, perl6, erlang, gdb, kixtart, vim, oracle8, reg, dcs, typoscript, per, hicest, objeck, eiffel, mysql, actionscript3, parigp, pys60, 6502acme, lscript, epc, gettext, scala, tsql, lsl2, matlab, autoit, pf, xpp, robots, ruby, cmake, ada, systemverilog, winbatch, c_mac, jquery, text, e, io, php-brief, pixelbender, modula3, glsl, autohotkey, email, cfm, bf, sql, 6502tasm, arm, dcl, cpp-qt

FIREBIRD is not a supported langage
List of available langages :
php, smarty, cuesheet, div, q, mapbasic, gambas, cfdg, netrexx, css, freeswitch, z80, java5, sparql, falcon, asymptote, dot, mxml, plsql, fsharp, dcpu16, vala, basic4gl, qbasic, clojure, oobas, powershell, rails, diff, pli, freebasic, sas, stonescript, scheme, latex, f1, pascal, 6502kickass, bnf, llvm, klonecpp, povray, applescript, python, coffeescript, progress, html4strict, postgresql, lua, newlisp, lisp, unicon, cadlisp, asm, vba, oxygene, modula2, urbi, go, gnuplot, m68k, vbnet, euphoria, spark, xorg_conf, properties, lolcode, oberon2, xbasic, avisynth, yaml, vhdl, cpp, logtalk, powerbuilder, gml, perl, icon, sdlbasic, fo, ocaml-brief, mmix, providex, pic16, klonec, abap, gwbasic, nagios, pike, genero, purebasic, zxbasic, haxe, lotusformulas, awk, visualfoxpro, cobol, pcre, ocaml, apt_sources, chaiscript, autoconf, j, intercal, 68000devpac, xml, asp, lotusscript, bascomavr, genie, tcl, prolog, upc, rebol, octave, nsis, groovy, cil, mirc, smalltalk, oracle11, pycon, mpasm, dos, rsplus, c, locobasic, ini, bash, d, javascript, vedit, magiksf, thinbasic, lb, parasail, proftpd, whitespace, oz, whois, teraterm, 4cs, actionscript, csharp, apache, make, objc, boo, fortran, delphi, oorexx, idl, ecmascript, visualprolog, algol68, verilog, html5, caddcl, haskell, uscript, blitzbasic, rpmspec, java, rexx, scilab, bibtex, ldif, inno, c_loadrunner, hq9plus, perl6, erlang, gdb, kixtart, vim, oracle8, reg, dcs, typoscript, per, hicest, objeck, eiffel, mysql, actionscript3, parigp, pys60, 6502acme, lscript, epc, gettext, scala, tsql, lsl2, matlab, autoit, pf, xpp, robots, ruby, cmake, ada, systemverilog, winbatch, c_mac, jquery, text, e, io, php-brief, pixelbender, modula3, glsl, autohotkey, email, cfm, bf, sql, 6502tasm, arm, dcl, cpp-qt



Eklenti Dosyaları
.zip   FBTEST0_2.zip (Boyut: 50,95 KB / İndirilme: 35)



  Alıntı
Bu mesajı beğenenler:
#2
Çok teşekkürler, anlatımız tarzınız da çok iyimiş Wink

Zeki bundan böyle kendini yalnız hissetmez sanırım...
Javascript
  1. this.setState({sign:"Here comes the sun...."})







  Alıntı
Bu mesajı beğenenler:
#3
çok güzel bir örnek olmuş elinize sağlık.



  Alıntı
Bu mesajı beğenenler:


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  Firebird Store procedure le Bul ve Değiştir AhmetNuri 2 3.309 26-06-2022, 00:20
Son Mesaj: Zeki Gürsoy
  Firebird : Kurulum ve Connection Zeki Gürsoy 9 16.023 21-04-2021, 15:13
Son Mesaj: sarsak
access-sql-14 Firebird : Yürüyen Bakiye Uygulaması Zeki Gürsoy 16 14.853 12-08-2015, 14:12
Son Mesaj: akuyumcu63
  Firebird Aynı Kayıtları bul ve sil AhmetNuri 0 3.198 12-10-2012, 20:52
Son Mesaj: AhmetNuri
  firebird ile listelenmiş verinin kaynak tablosunu değiştirme yardım! muratxx5 1 2.706 21-05-2012, 00:05
Son Mesaj: Zeki Gürsoy
  Firebird otmatik loglama (Trigger Level Loging) AhmetNuri 6 8.641 26-03-2012, 01:31
Son Mesaj: Zeki Gürsoy
  Firebird Veritabanında olan procedure lar nasıl gizlenir softdestek 8 6.737 19-03-2012, 21:40
Son Mesaj: softdestek
  Firebird : DateDiff (Excel ETARİHLİ fonk. birebir kopyası) Zeki Gürsoy 0 4.262 21-02-2012, 02:58
Son Mesaj: Zeki Gürsoy

Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi