17 Şubat 2012 Cuma

SQL de string formatlama ve kolonları birleştirme

Diyelim birleştirmeniz gereken birden fazla kolon veriniz var.
Sql sorgunuzda bu birleştirmeleri direkt yaparak veriyi bütün halinde alabilirsiniz

SELECT (Trim(ADRES1) || ' ' || Trim(ADRES2) || ' ' || Trim(ADRES3) || '' || Trim(ILCE) || '/' || Trim(IL)) ADRES FROM MUSTERI_TABLOSU

VEYA

SELECT CONCAT(CONCAT(CONCAT(CONCAT(ADRES1,ADRES2),ADRES3),ILCE),IL) AS ADRES
FROM MUSTERI_TABLOSU

Sorgularındaki gibi birleştirmeleri yöntemlerini deneyebilirsiniz. İlk yöntem kolonlardan sonraki boşlukları silmenizide sağladığı için kesinlikle tercih edilen yöntem olacaktır çünkü genelde tablolardaki verilerimiz temiz olmuyor.

Ekranın dışına tıklayınca kapatmak

Bir linke tıklayıp bir ekranı açmak, ekran dışına tıklanınca da kapanmasını istiyorsanız basit bir javascript kodu ile bunu yapabilirsiniz. İşte bu da kod

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Tıklanınca aç, dışına tıklanınca kapat</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<style type="text/css">
<!--
#mydiv{
    background-color: #999999;
    height: 100px;
    width: 100px;
    display:none;
}
-->
</style>
<script type="text/javascript">
document.onclick=check;
function check(e){
var target = (e && e.target) || (event && event.srcElement);
var obj = document.getElementById('alan');
var obj2 = document.getElementById('goster');
checkParent(target)?obj.style.display='none':null;
target==obj2?obj.style.display='block':null;
}
function checkParent(t){
while(t.parentNode){
if(t==document.getElementById('alan')){
return false
}
t=t.parentNode
}
return true
}
</script>
</head>
<body>
<span id="goster" style="cursor:pointer">Alanı Göster</span>
<div id="alan">
<table width="50" border="0" cellpadding="2" cellspacing="1" bgcolor="#99FFCC">
<tr>
<td>buralara istediginiz yazıları stilleri uygulayabilirsiniz</td>
<td>e</td>
</tr>
<tr>
<td>rtr</td>
<td>rty</td>
</tr>
</table>
</div>
</body>
</html>

7 Şubat 2012 Salı

Bu ilan paylaşılmalıydı, payşalıyorum

Gerek medeni cesareti, gerek açık yürekliliği, gerek istediğini sade bir vatandaş olarak dile getirmesinden dolayı tam sayfa ilan veren Ali ihsan Dönmez isimli beyefendinin saklamaya değer bulduğum bu gazete ilanını sizlerle paylaşıyorum.

Kendisini düşüncelerin kısıtlanmak istendiği düşüncesini bu ortamda gazeteden tam ilan vererek haykırmasını da ayakta alkışlıyorum.

SQL'de Truncate ile Delete arasındaki farklar

Evet, ikiside tabloları silmek için kullanılan komutlar ama ne farkları var?
TRUNCATE TABLE ya da DELETE FROM
1- İlk farklılık truncate ile silme işlemi yaparsanız, veritabanı seviyesinde her silme işleminden sonra LOG tablosunda tutulan loglamayı dar kapsamlı tuttuğu için geri dönüşü olmaz ve bu özelliği ile daha hızlı çalışır.
2- Truncate komutu ile where koşulu kullanılamaz, rollback yapılamaz.
3- Truncate alter yetkisine, delete ise delete yetkisine ihtiyaç duyar.
4- Bu bence en önemli nokta; kullandığınız anahtar alanınızı, otomatik artmaya ayarladığınızda(identity tipindeki kolon) delete ile silme işleminiz sonrası son değerinden devam eder, yani 120 de kaldıysa yeni attığınız kayıt boş tabloya 121 ile atılmaya başlar. Truncate ise tekrar 1'e dönmesini sağlar.

Bu arada başka tablolar truncate etmek istediğiniz tabloya (ForeignKey) bağlılığı varsa truncate kodunu çalıştıramazsınız, ama derseniz ki truncate etmeden identity alanını sıfırlamak istiyorum, onun yöntemi

DBCC CHECKIDENT('TABLONUZUNADI', RESEED, 0)

Umarım bu özet bilgilerin yararı olur ;)