IMPORT KERNEL
Konu başlıkları
|
Import Kernel Nedir ?
İmport Kernel , tablo halinde kayıtlarımızın bulunduğu *.ods uzantılı dosyadan kayıtları alıp , veri tabanındaki tablolara kaydeden kernel'dır.
Import Kernel Sınıfı
Bu sınıfı miras alarak farklı İmport Kernel'lar oluşturulabilir.
Zorunlu Fonksiyonlar
SET_DEFAULT_ROW_VALUES
Ods dosyasındaki veriler veritabanı tablolarına aktarılırken boş bırakılan alanlara atanacak değerleri belirlediğimiz fonksiyondur.
NOT : Burdaki zorunlu ve default alan sayısı dosyadaki alan sayısından fazla olmamalıdır.
- Adres içe aktarmak için yazılmış bir bir koda bakalım..Adres alanları için default değerler oluşturuluyor..
QStringList ADRES_IMPORT::SET_DEFAULT_ROW_VALUES() { QStringList zorunlu_ve_default_alanlar; zorunlu_ve_default_alanlar << "*"; // Zorunlu alanlar zorunlu_ve_default_alanlar << ""; zorunlu_ve_default_alanlar << ""; zorunlu_ve_default_alanlar << ""; zorunlu_ve_default_alanlar << ""; zorunlu_ve_default_alanlar << ""; zorunlu_ve_default_alanlar << ""; zorunlu_ve_default_alanlar << ""; zorunlu_ve_default_alanlar << ""; return zorunlu_ve_default_alanlar; }
IMPORT_ROW
Dosyadan alınan veriler bu fonksiyonda veri tabanına kaydedilir.Önceden grup seçildiyse burada kayıt gruba dahil edilir.
- Adres kayıtları tablosuna dosyadan veri aktaran bir IMPORT_KERNEL örneğine bakalım.
Dosyadan alınan kayıt , veri tabanındaki tabloda varsa bu kayıt veri tabanındaki tabloya kaydedilmiyor.
-
- Tablonun header bilgileri set ediliyor.. :
void ADRES_IMPORT::IMPORT_ROW( QStringList row ) { QStringList headers;
headers << "Şahış/Firma Adı"; headers << "Telefon"; headers << "Ülke"; headers << "İl"; headers << "İlçe"; headers << "Adres"; headers << "E-mail";
SET_HEADERS ( headers ); SET_PROGRAM_ID ( K9_PROGRAMI ); SET_MODUL_ID ( ADRES_MODULU );
}
-
- Tablodaki bilgiler veri tabanına kaydediliyor.. :
void ADRES_IMPORT::IMPORT_ROW( QStringList kayit_bilgisi_list ) { if ( kayit_bilgisi_list.size() <= 0 ) { return; } QString firma_sahis_adi = kayit_bilgisi_list.at(0).mid(0, 60) ; SQL_QUERY query (DB); query.PREPARE_SELECT( "adr_adresler" , "adres_id" , "firma_sahis_adi =:firma_sahis_adi " ); query.SET_VALUE( ":firma_sahis_adi" , firma_sahis_adi); if( query.SELECT() NE 0 ){ return; } QString tel = ""; QString tel_alan = ""; QString tel_ulke = ""; QString adres_satiri_1 = ""; QString adres_satiri_2 = ""; QString adres_satiri_3 = ""; TELEFON_BILGINI_PARSE_ET( kayit_bilgisi_list.at(1), &tel_ulke, &tel_alan, &tel ); QString tum_adres = kayit_bilgisi_list.at(5); adres_satiri_1 = tum_adres.left(34); tum_adres.remove(0,34); if (tum_adres.size() > 0) { adres_satiri_2 = tum_adres.left(34); tum_adres.remove(0,34); } if (tum_adres.size() > 0) { adres_satiri_3 = tum_adres.left(34); } query.PREPARE_INSERT("adr_adresler","adres_id", "adres_kart_turu, " "firma_sahis_adi, " "ilce, " "sehir, " "ulke, " "adres_satiri_1, " "adres_satiri_2, " "adres_satiri_3, " "tel_ulke_kodu, " "tel_alan_kodu, " "telefon, " "modul_id, " "program_id, " "email "); query.SET_VALUE(":adres_kart_turu", FIRMA_KAYDI ); query.SET_VALUE(":modul_id" , ADRES_MODULU ); query.SET_VALUE(":program_id" , K9_PROGRAMI ); query.SET_VALUE(":firma_sahis_adi", firma_sahis_adi ); query.SET_VALUE(":ulke" , kayit_bilgisi_list.at(2) ); query.SET_VALUE(":sehir" , kayit_bilgisi_list.at(3) ); query.SET_VALUE(":ilce" , kayit_bilgisi_list.at(4) ); query.SET_VALUE(":adres_satiri_1" , adres_satiri_1 ); query.SET_VALUE(":adres_satiri_2" , adres_satiri_2 ); query.SET_VALUE(":adres_satiri_3" , adres_satiri_3 ); query.SET_VALUE(":email" , kayit_bilgisi_list.at(6) ); query.SET_VALUE(":tel_ulke_kodu" , tel_ulke ); query.SET_VALUE(":tel_alan_kodu" , tel_alan ); query.SET_VALUE(":telefon" , tel ); int id = query.INSERT(); if ( GET_GRUP_IDLERI()->size() > 0 ) { GRP_KAYDI_GRUPLARA_EKLE(K9_PROGRAMI, ADRES_MODULU, id, GET_GRUP_IDLERI() ); } }
- ADRES IMPORT örneğini kullanarak *.ods uzantılı dosyadaki adresleri içe aktaralım.. :
-
- Dosya seçildi ve içe aktarmak için kullanıcı isteniyor
|
|
-
- Kullanıcı onayladıktan sonra kayıtlar içe aktarıldı..
|
- Şimdide ADRES IMPORT örneğini kullanarak daha önce eklediğimiz kayıtlardan 3 tanesini veri tabanımızdan silerek ,
aynı dosyayı tekrar içeri aktarmaya çalışalım..
-
- "Muiz Kohell" , "SSK" ve "Tamer" firma veya şahıs adındaki kayıtlar veri tabanından siliniyor..
|
-
- Daha sonra aynı dosya tekrar içeri aktarmak isteniyor.Veri tabanına sadece sildiğimiz kayıtlar ekleniyor..
|
|
|
-
- Veri tabanında olmayan kayıtları eklendi ve işlem tamamlandı..
Hazır Fonksiyonlar
SET_HEADERS
Önizleme tablosunun başlıklarını set eder.
GET_GRUP_IDLERI
İçe aktarılacak verilerin grup id'lerini liste olarak verir.
SET_PROGRAM_ID
Program id'sini set eder.
SET_MODUL_ID
Modül id'sini set eder.
ONIZLEMEYI_GOSTER
Dosyadan alınan kayıtları form ekranında tablo şeklinde gösterir.
TABLO_DOLDUR
Önizleme tablosunu , dosyadan alınan verilerle doldurur.
SET_LIST_VALUES
Verilen aralıklardaki satır ve sutunlardaki alanlara verilen default değerleri atar.
ROW_DATA_KONTROL
Dosyadan alınan verilerde boş bırakılan alan olup olmadığını kontrol eder.Ayrıca default değerler alması gereken alanlara default değerler atar.