28 Ağustos 2010 Cumartesi

Basit SQL HATALARI


HATA 1 :
"error 602:could not find row in sysindexes for database ID 11,object ID 1,index ID 1 Run DBCC CHECKTABLE on sysindexes."
Bu hata Sql server 2000 veri tabanınızı alıp 2005 e iliştirdikten sonra tekrar alıp sql server 2000 veri tabanınıza geri attach etmeye çalıştığınızda karşınıza çıkabilir.
Çözüm Yoktur.Çünkü artık Sql server 2005 e attach ettiğiniz veri tabanınız 2000 formatına uygun değildir.

Index (zero based) must be greater than or equal to zero and less than the size of the argument list.
Açıklama : Muhtemelen böyle bir hata ile karşılaştığınızda örneğin veri tabanına bir kayıt ekliyorsanız ;parametleri eksik yada yanlış vermiş olanbilirsiniz.
yani
string cmd="INSERT INTO Kitap(Adi,Yazar,Sayfa) VALUES(TextBox1,TextBox2.Text,TextBoxt3.Text)"
Bu insert into Komutunda TextBox1 ile gösterilen Alan da hata alınabilir.Çnkü .Text denmemiş.
yada
string cmd="INSERT INTO Kitap(Adi,Yazar,Sayfa) VALUES(@Adi,@Yazar,@Sayfa)"
Şeklinde bir komut da values kısmında belirtilen parametlerden bir tanesini eksik yazarsanız böyle bir hata alabilirsiniz.


HATA 2 :
A query parameter cannot be of type 'System.Object'.
Açıklama : Bu hata alındığında muhtemelen Sql de bir kayıt eklerken verdiğiniz parametrelerden bir tanesi null değer içeriyordur.
Çözüm :Null gelen değeri bulup düzeltmek yeterli olucaktır.
Yunus Emre Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.

23 Ağustos 2010 Pazartesi

Logo (LOJECTS.exe ve LOBJECTS.dll) Register İşlemleri


LOBJECTS.dll register işlemi :
başlat-> çalıştır -> cmd yazıp konsole ekranına geçiyoruz

REGİSTER İÇİN :
regsvr32 logoDosyaYolu\LOBJECTS.dll yazıyoruz ve dll imizi register ediyoruz

UNREGISTER İÇİN :
regsvr32 -u logoDosyaYolu\LOBJECTS.dll ile de unregister edebiliriz.


LOBJECTS.exe register işlemi :
başlat-> çalıştır -> cmd yazıp konsole ekranına geçiyoruz

REGİSTER İÇİN :
logoDosyaYolu\LOBJECTS.exe -REGSERVER yazıyoruz ve LOBJECTS.exe mizi register ediyoruz.

UNREGISTER İÇİN :
logoDosyaYolu\LOBJECTS.exe -UNREGSERVER yazıyoruz ve LOBJECTS.exe mizi unregister ediyoruz.
Umarım yararlı olmuştur.
Yunus Emre Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.

Çocukardan Tanrı ya :) (Biraz Makara)


Cocuklardan Tanri'ya mektuplar:)))
Cocuk iste:))

Avrupa ve Amerika’da 2-9 yaş çocuklara Tanrı’ya ilişkin düşünceleri...ni sormuşlar. Dinsel eğitimin bir parçası olarak çocuklara Tanrı’ya bir mektup yazın ve duygularınızı isteklerinizi anlatın demişler.

1) Sevgili Tanrı, şu andaki eksiklerimi yazıyorum: Yeni bir bisiklet, bir kimya seti, köpek, film makinesi, beyzbol eldiveni. Hepsini gönderemezsen birazı da olur.
Seni seven Eric --5 yaşında-
Not: Noel Baba’nın olmadığını biliyorum.

2) Canım canım Tanrı,
Astronotları öyle yukari firlatip firfir döndürmelerinden ödüm kopuyor. N’olur onların bizim evin çatısına düşmelerine izin verme.
Dostun Norman --4.5 yaşında-

3) Sevgili Tanrım,
insanlarin ölmelerine izin verip yenilerini yapmak yerine neden elindekileri tutmuyorsun? Jane --6 yaşında-

4) Sevgili Tanrı,
Lütfen bana bir midilli gönder. Senden şimdiye kadar hiçbir şey istemedim. Bunu da herhalde unutmazsın.
Bruce --4 yaşında-

5) Sevgili Tanrı,
Babam çok aksi. Onu bu huyundan vazgeçirmeni istiyorum. Ama lütfen canını yakma. Sevgilerle.
Martin --5 yaşında-

6) Sevgili Tanrı,
Bulutlardan biri yüzünü öyle korkunç yaptı ki ödüm koptu. N’olur söyle ona bi’ daha öyle yapmasın.
Ellen --3 yaşynda-

7) Sevgili Tanrı,
Sahiden var mısın? Bazıları buna inanmıyor: Eğer varsan gecikmeden bir şeyler yapmanda fayda var.
Harriet Ann --6 yaşında-

8) Sevgili Tanrı,
Eğer hiç kimse bilmeyecekse iyi olmanın ne yararı var?
Mark --8 yaşında-

9) Tanrı’cım,
Üst kattakiler durmadan bağıra çağıra kavga ediyorlar. Bence yalnızca çok iyi arkadaşların evlenmesine izin vermelisin.
Nan --5 yaşında-

10) Sevgili Tanrım,
Ne diye bu kadar çok insan yarattın. Başka bir dünya daha yapıp fazlalıkları oraya koyamaz mısın?
J.B. --7 yaşında-

11) Tanrım,
Insanlara ruhları her zaman doğru mu dağıtıyorsun? Yanlış yapabilirsin.
Audrey --8 yaşında-

12) Sevgili Tanrı,
Sen tuhaf ne yaparsan yap herkes hayran oluyor; ama ben ufacık bir şaka bile yapsam yiyorum fırçayı.
Jodie --6.5 yaşında-

13) Sevgili Tanrı,
Bizi hiç merak etme çünkü bizimkiler çok dindar.
Teddy --9 yaşında-

14) Sevgili Tanrı,
Bende senin dışında bütün liderlerin resmi var. Norman --6 yaşında-

15) Tanrım,
Şişman olunca kimse senin arkadaşın olmak istemiyor.
Billy Jean --9 yaşında-

16) Sevgili Tanrım,
Oğlanlar kızlardan daha mi üstün? Biliyorum sen de onlardansın ama gene de dürüst olmaya çalış.
Sylvia --5 yaşında-

17) Sevgili Tanrı,
Kitabını okudum ve beğendim. Bütün o fikirler nereden geldi aklına?
John --8 yaşında-

18) Sevgili Tanrı,
Zürafaların görünümünü isteyerek mi böyle yaptın, yoksa yanlışlıkla mı oldu?
Norman --4 yaşında-

19) Tanrım,
İncil’de neden hiç karının adi geçmiyor? Yoksa İncil’i yazarken daha evlenmemiş miydiniz?
Larry --6 yaşında-

20) Sevgili Tanrım,
Tamam incil’de öbür yanağını çevir dedin biliyorum; ama kardeşim gözüme vurunca ne yapacağım?
Sevgiler, Teresa --5 yaşında-

21) Sevgili Tanrı,
Tanry oldugunu nasıl bilebildin?
Charlene --3 yaşında-

22) Sevgili Tanrı,
Senin yaşına geldiğimde tıpkı senin gibi olmak istiyorum. Tamam mı?
Tommy --4 yaşında-

23) Sevgili Tanrım,
Eger Tanrı ben olsaydım bu kadar iyi olmazdım. Bunu aklından çıkarma.
Michelle --6 yaşında-
Yunus Emre Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.

9 Ağustos 2010 Pazartesi

MultiThreading(Çok Kanallılık)


Vücudumuzda, yaşamamızı devam ettirebilmemiz için aynı anda birçok görev birbirine paralel bir şekilde gerçekleştirilir. Solunum, kan dolaşımı, enerji üretimi, her an, her saniye birbirleriyle uyumlu bir şekilde devam eder. Aynı durum bilgisayarlarımızda da söz konusudur. Bir taraftan müzik dinlerken, diğer taraftan internetten dosya indirebilir, bunların yanında yazıcımızdan çıktı alabilir, favori kelime işlemcimizde yazı yazıyor olabiliriz. Hatta tek bir program dahi birçok işi eş zamanlı olarak gerçekleştirebilir. Örneğin kelime işlemcimizde yazı yazarken, programımız, yazdıklarımızı biçimlendirmekle ne kadar meşgul olursa olsun, klavye ve fareyle yaptığımız işlere her zaman duyarlıdır. İşte aynı anda birden fazla görevi gerçekleştirebilen yazılımlara eş zamanlı (concurrent) yazılımlar, bu görevlerin eş zamanlı gerçekleştirilmesine de eş zamanlılık (concurrency) diyoruz. Bu da bizi asıl konumuza getiriyor: multithreading, yani çok kanallılık. Çok kanallılığımız :)Çok kanallılığın tanımını yapmadan önce iki terimi bilmekte yarar vardır: işlem (process) ve kanal/işlemcik/izlek (thread).

İşlem (process): Kısaca çalışmakta olan program demektir. Kendi bellek alanları, işlemci durumu kayıtları ve çalışma zamanı kaynakları (run-time resources) olan uygulama ortamlarıdır. Çoğu zaman program ve uygulama (application) kelimeleriyle eş anlamlı olarak da kullanılırlar. Ancak kullanıcının gördüğü tek bir uygulama, birçok işlemden oluşmaktadır.
İşlemcik (thread): İzlek veya kanal olarak da anılır. Çoğu zaman hafif işlemler olarak adlandırılırlar; ancak sistem gereksinimleri işlemlere göre daha düşüktür; çünkü kendi işlemci durumu kayıtları olmasına rağmen, sistem kaynakları ve bellek alanlarını yaratıldıkları işlemden alırlar. Bir işlemin eş zamanlı görevleri gerçekleştirebilmesi amacıyla yazılmış ve genellikle tek bir görevi çalıştıran kod parçalarıdır.
İşlem ve işlemcikleriTanımlarımızı yaptıktan sonra artık çok kanallılığa geçebiliriz. Çok kanallılık, adından da anlaşılacağı üzere birçok işlemcikin eş zamanlı bir şekilde işlem yapabilmesidir; bir başka deyişle, bir işlemi, kendi içinde birbirine paralel biçimde daha küçük alt birimlerle (thread) çalıştırma şeklidir.
Bir de çok görevlilik (multitasking) vardır ki, belli yönlerden çok kanallılıktan ayrılır. Çok görevlilik, işletim sisteminin aynı anda birden fazla program çalıştırabilmesidir, ancak gerçek bundan biraz farklıdır. İşletim sistemi, çalışacak programları öncelikle sıraya sokar ve sonra sırası geleni çalıştırır. Bu işlem sonucunda programları aynı anda çalışıyorlarmış gibi görürüz, büyülü bir şey yani :) Ayrıca çok görevlilikte görevler aynı belleği paylaşamazlarken, çok kanallılık’de paylaşabilirler. Çünkü çok görevlilik işlemler üzerinden işlerken, çok kanallılık işlemcikler üzerinden gerçekleşir.

Çalışma Prensibi
Bilgisayarımızda çalışan her bir işlemcik için bellekte belirli bir yer, işlemci tarafından belirli bir zaman ayrılır. Bunlara ek olarak tüm işlemciklerin belirli öncelikleri (priority) vardır. İşletim sistemleri, uygulamalar içinde çalışan işlemcikleri önceliklerine göre sıralayarak çalıştırırlar, ancak bazı yöntemlerle belirli bir dereceye kadar akışları değiştirilerek de kullanılabilirler. Aksi belirtilmedikçe bir işlemcik, başka bir işlemcikin çalışmasına karışamaz, bu yüzden birçok işlemciğin aynı anda, aynı verileri kullanma ihtimalleri vardır ki, bazen bu durum tehlikeli sonuçlara neden olabilir. Bu şekilde birçok işlemcik tarafından paylaşılabilen verilere, “kritik bölge verileri” (critical region) adı verilir. Kritik bölgede birden çok işlemcik çalışıyorsa, işlemciklerin hafızaya ve işleme zarar vermeden çalışabilmeleri için senkronize olmaları şarttır. Örneğin, hatalı ve bilinçsizce yazılan kodlar sonucunda deadlock (kilitlenme) meydana gelebilir. Bu durumda, iki ya da daha fazla işlemcik, birbirlerini bekleyerek, sonsuza kadar çalışabilirler. (Kilitlenmeyle ilgili daha detaylı anlatım için Mayıs sayımızdaki "Ölümcül Kilitlenme" yazımıza göz atabilirsiniz.)
Tam tersine, eğer bir işlemcik, paralel çalıştığı diğer işlemciklerin “oyun sahasına” karışmıyor ve onların kritik bölgeleriyle işlem yapmıyorsa bu durum, güvenli işlemcik (thread safe) olarak ifade edilir.

Kullanım Alanları
İşlemcikler yanlış kullanıldığında bazı tehlikelere yol açmasına rağmen, bugün neredeyse bütün sistemlerde çok kanallılık, yüksek düzeyde performans sağlamak amacıyla yaygın olarak kullanılmaktadır. Örneğin büyük çapta, çok fazla istemciye hizmet veren bir haberleşme ağı kurduk, sonuçta hepsine aynı anda cevap verebilmek için çok kanallılıktan yararlanmak zorundayız; aksi halde, istemciler, sistemimizden geç haber alma ya da hiç alamama durumunda kalabilirler. Bunun dışında hepimiz çok oyunculu (multiplayer) oyunlar oynamışızdır. Eğer oyunlarda çok kanallılık kullanılmasaydı, aynı anda hem oyunumuzu oynamamız, hem de diğer oyuncularla bağlantımızı sürdürebilmemiz mümkün olmazdı. Çok kanallılık ayrıca GUI (Graphical user interface, grafiksel kullanıcı arayüzü)‘lerde de kullanılmaktadır. Mesela bir butona bastığımızda, arka planda bilmediğimiz birçok işlem gerçekleşir. Eğer yine çok kanallılık kullanmamış olsaydık butona bastığımızda GUI donup kalır, bilgisayar başında öylece kalırdık :)

Hangi Programlama Dilleri Destekliyor
Amerikan Savunma Bakanlığı tarafından geliştirilen ADA programlama dili, yazılım geliştiricilerine, komut ve kontrol sistemlerini geliştirebilmeleri olanağı sağlamak amacıyla, çok kanallılık desteği sunacak biçimde tasarlanmıştır; ancak ADA günümüzde hava elektronigi programlamasi ve askeri programlar gibi standartlaştığı alanlar dışında yaygın olarak kullanılan bir programlama dili değildir. Popüler diller arasında, JAVA, C#, Python ve Ruby ile çok kanallı tasarımlanmış programlar oluşturmak mümkündür. Özellikle JAVA, çok kanallılık içeren uygulamalar yazmak açısından oldukça zengin bir dildir. Monitör ve durum değişkenleri (condition variables) gibi, JAVA'nın çok kanallılığı desteklemek amaçlı ve kullanıcı dostu olarak sağladığı yapılar vardır. JAVA’da yazılan her uygulama en az bir tane ya da daha fazla işlemcik içerir, ancak her zaman tek bir işlemcik ile işe başlarsınız: “ana işlemcik”i (main thread) ve bu işlemciğin başka işlemcikler oluşturma gibi bir özelliği vardır.
C/C++, Perl ve Visual Basic gibi diller ise çok kanallılığı dilin kendi özelliği olarak desteklemezler, bu yüzden bu dillere tek izlekli (single-threaded) diller adı verilir. Ancak C ve C++ özel kütüphaneler yardımıyla çok kanallılığı destekleyen programlar yazmak mümkündür.

Uzun Sözün Kısası…
Çok kanallılık teknolojisinin ortaya çıkmasıyla birlikte, uygulamalar daha farklı, daha güçlü bir kimlik kazandılar ve kullanıcının ihtiyaçlarına daha iyi cevap verir oldular. Günümüz teknolojisinde kullandığımız hemen hemen her programda çok kanallılığın izlerini görebiliriz. Gelişen teknolojiyle birlikte, yazılım geliştiricileri çok kanallılığa daha da ihtiyaç duyacağa benziyor.

Kaynak : http://e-bergi.com/2008/Temmuz/Cok-Kanallilik
Yunus Emre Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.

5 Ağustos 2010 Perşembe

"String or binary data would be truncated."


Eğer Sql de bu hata ile karşılaştıysanız.
Bir alana atanan veri boyutundan fazla bir veri girmişsiniz demektir.
Örnek :
nvarchar(3) olarak tanımlanmış bir alana 4 karakter bir değer girmeye çalışırsanız böyle bir hata alırsınız.
Umarım Faydalı olmuştur.
Yunus Emre Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.