Translate

17 Aralık 2014 Çarşamba

PL/SQL(2): Cursor Kullanımı



    Selamlar, bu yazıda pl/sql cursor kullanımı anlatılacaktır. Öncelikle, kullanacağımız basit bir table oluşturuyoruz;

    CREATE TABLE dersler
    (
        id INTEGER,
        ad VARCHAR2(50)
 
    );

Tabloya kayıtları insert ediyoruz;


    insert into dersler(id,ad) values(1,'A');

    insert into dersler(id,ad) values(2,'B');

    insert into dersler(id,ad) values(3,'C');

    insert into dersler(id,ad) values(4,'D');

    insert into dersler(id,ad) values(5,'E');



Cursor kullanıma dair ilgili script örneğini şu şekildedir;


DECLARE
   c_id dersler.id%type;
   c_ad dersler.ad%type;

   CURSOR c_dersler is
          SELECT id,ad FROM dersler where id>3;

BEGIN

   OPEN c_dersler;--cursor acılıyor.

   LOOP

      FETCH c_dersler into c_id, c_ad;--cursordaki o anki satır verileri degiskenlere aktarılıyor.

      EXIT WHEN c_dersler%notfound;--cursorda veri kalmadıgı surece dongu bir sonraki veriye gecerek devam ediyor.
   
      IF c_id<5 THEN--id'si 5 den kücük kontrolü yapılıyor.
        dbms_output.put_line(c_id || '=>' || c_ad);
      END IF;
   
   END LOOP;

   CLOSE c_dersler;--islem sonrasında cursor kapatılıyor.

END;
/


Scripti çalıştırdığınızda output olarak göreceğiniz değer ;  4=>D


 Cursor kullanımı ile;

1)İstediğiniz tablo ile ilgili olarak tüm dataların kontrollerini dongu vasıtasıyla satır satır kontrol edebilmeniz mümkündür.
2)İlgilendiğiniz tablodaki istediğiniz şartlara uyan dataları çekebilmenizi ve işleyebilmenizi sağlar.

    Script örneğinde; dersler tablosunda yer alan ders adlarını ve id bilgilerinden id'si 3 den büyük dataları cursor ile ilişkilendirmiş oluyoruz. Döngü içerisinde ise cursor da bulunan id'si 3 den büyük verilerden id'si 5 den küçük olan (id=4) ekrana basılmış oluyor.

    Bu ders ile cursor kullanımına dair fikir edinebilmeniz amaçlanarak basit bir örnek üzerinden anlatım gerçekleştirilmiştir. Faydalı olması dileğiyle, sağlıcakla...




11 Aralık 2014 Perşembe

Android Studio Türkçe Karakter Sorunu




    Merhabalar, bu yazıda Android Studio da uygulama geliştirirken yaşanabilecek Türkçe karakter sorununun çözümü anlatılacaktır.

    Uygulamanızın yer aldığı;




   ekrandaki işaretli alanı açıyoruz. Açılan ekranda;



    şekilde, işaretli kod parçasını ekliyoruz. Projeyi kaydederek compile etmeniz gerekmektedir. Sonrasında projenizdeki Türkçe karakter sorunu çözülmüş olacaktır.


    Faydalı olması dileğiyle, sağlıcakla...


9 Aralık 2014 Salı

PL/SQL(1): Associative (İlişkilendirilebilir) Diziler



    Merhabalalar, bu yazıda Associative Arrays (ilişkilendirilebilir diziler) den bahsedilecektir. Örnek kod bloğu aşağıdaki gibidir.


DECLARE
   TYPE Kitap IS RECORD --Kitap nesnesi olusturuluyor.
   (
      kitap_adi       VARCHAR2(30),
      yazari          VARCHAR2(30)
   );

   TYPE map_Raf IS TABLE OF Kitap --Kitap nesnesi tipinde dizi olusturuluyor.
      INDEX BY PLS_INTEGER;

   l_kitap   Kitap;
   l_raf   map_Raf;
 
   i INTEGER;
BEGIN
    l_raf (1).kitap_adi := 'Dijital Kale'; -- dizi dolduruluyor.
    l_raf (1).yazari := 'Dan Brown';

    l_raf (2).kitap_adi := 'Su Cilgin Turkler'; -- dizi dolduruluyor.
    l_raf (2).yazari := 'Turgut Ozakman';
   
     FOR i IN l_raf.FIRST..l_raf.LAST  LOOP --dizi nesne özellikleri gosteriliyor.
           
        dbms_output.put_line(i || '. Raf :');
        dbms_output.put_line(' Kitap Adı=> ' || l_raf(i).kitap_adi || ',Yazari=> ' || l_raf(i).yazari);
       
     END LOOP;
   
END;
/

   Faydalı olması dileğiyle, sağlıcakla...

1 Aralık 2014 Pazartesi

Android SDK Manager Failed to fetch URL Hatası




    Merhabalar, bu yazıda Android SDK Manager i açtığınızda karşılaşabileceğiniz;


Fetching https://dl-ssl.google.com/android/repository/addons_list-2.xml 
Fetched Add-ons List successfully 
Fetching URL: https://dl-ssl.google.com/android/repository/repository-7.xml 
Done loading packages. Fetching https://dl-ssl.google.com/android/repository/addons_list-2.xml Failed to fetch URL https://dl-ssl.google.com/android/repository/addons_list-2.xml, reason: Cannot assign requested address: connect 
Fetched Add-ons List successfully 
Fetching URL: https://dl-ssl.google.com/android/repository/repository-7.xml 
Failed to fetch URL https://dl-ssl.google.com/android/repository/repository-7.xml, reason: Bind Cannot assign requested address: connect 
Done loading packages.

hatasının çözümüne değinmek istiyorum. Öncelikle Android SDK Manager i açıp , Tools >> Options ekranını açıyoruz ve aşağıdaki gibi gerekli değişiklikleri yapıp, Clear Cache tıkladıktan sonra Close ile çıkışı yapıyoruz.


    İşlem sonrasında SDK Manager kullanılabilir hale gelmiştir. Kolay gelsin...

28 Ekim 2014 Salı

Android Programlama(5): Alert Dialog (Mesaj Kutusu) Kullanımı

    Selamlar bu yazıda Alert Dialog kullanımının gösterildiği kod bloğu paylaşılacaktır. Uygulamanızın çıkışında kullanıcıya gösterilecek bir mesaj kutusu ile uygulama çıkışı ile ilgili seçim yaptırılmıştır. Kullanıcı evet butonuna tıkladığında activity sonlandırılmış, hayır butonuna tıklandığında ise işlem yapılmayarak mesaj kutusu kapatılmıştır. Kod bloğu ve açıklamaları şu şekildedir;

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {//geri tuşuna basılma durum kontrolü

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Uygulama Çıkış İzni")
.setMessage("Çıkış Yapmak İstiyor Musunuz?")
.setIcon(android.R.drawable.ic_dialog_alert)
.setPositiveButton("Evet",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
finish();//çıkış , activty sonlandır.
moveTaskToBack(true);
}
}).setNegativeButton("Hayır", null)

.show();

return true;
}
return super.onKeyDown(keyCode, event);
}


Umarım faydalı olmuştur,soru ve görüşlerinizi paylaşabilirsiniz, Cumhuriyet Bayramımız da şimdiden kutlu olsun :) görüşmek dileğiyle...



Android Programlama(4): Splash Ekranı Kullanımı

Selamlar, bu yazıda uygulamanızın splash ekranı için kullanacağınız kod bloğunu paylaşacağım. Uygulamanızın splash ekranınızın Activity onCreate metodunuzda aşağıdaki kod bloğunu kullanabilirsiniz;

int cnt = 5000;//bu değişkenimiz ile milisaniye olarak splash ekranımızın kaç milisaniye sonra sonlanacağını belirliyoruz

new Thread(new Runnable() {

@Override
public void run() {

if (!isFinishing()) // activity nin  sonlanma durumu kontrolü
{
try {
Thread.sleep(cnt);// splash ekranının bekletilmesi

Intent i = new Intent(getBaseContext(),AcilisControl.class);//geçiş yapacağımız activity e yönlendiriyoruz.Burada AcilisControl activity sine yönlendirme yapılmıştır.
startActivity(i);

finish();//activity sonlandırıyoruz
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}

}).start();


Diğer paylaşımlarda görüşmek üzere...

Android Programlama(3): Ringer Mode Erişim ve Uygulama Ortam Sesi Değiştirme

    Merhabalar, bu yazıda cihazın ringer mode erişimini sağlayacak kod bölümleri anlatılacaktır. Ringer mode ; cihazımızın sessiz, titreşimde vb. seçili durumda olan zil sesi durumlarının karşılığıdır.

AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);

if (audioManager.getRingerMode() == AudioManager.RINGER_MODE_SILENT)
{
//cihazın sessiz modda olması durumunda yapılması gereken işlemler
}
else if (audioManager.getRingerMode() == AudioManager.RINGER_MODE_VIBRATE)
{
//cihazın titreşim modda olması durumunda yapılması gereken işlemler
}

    Üstteki kod bloğu ile; audioManager değişkenimiz bir AudioManager sınıfından türemiştir, AudioManager  sınıfının getRingerMode()  fonksiyonu ile cihazın o anki ringer moduna erişim sağlanmakta ve bu modu istediğimiz şekilde zil sesi modlarının kontrolünde kullanabilmekteyiz. Bu kod bloğunda RINGER_MODE_SILENT (sessiz) ve RINGER_MODE_VIBRATE (titreşim) modlarının kontrolleri gerçekleştirilmiştir. Diğer mod detaylarını AudioManager  sınıfının incelenmesiyle öğrenebilirsiniz.

AudioManager audioManager;
int sesDeger = 0;// (0-15)
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC,sesDeger , 0);

    Bu kod bloğumuzda ise cihazda uygulamamız çalıştığı andaki ortam sesinin değiştirilebilmesini sağlamaktadır. Burada kullandığımız sesDeger isimli değişkenimiz ile 0-15 arası değerler verilerek ortam sesi ayarlanabilmektedir.

   Umarım faydalı bir paylaşım olmuştur, görüşmek ümidiyle...