26 Nisan 2013 Cuma

MSSQL Kayıt varsa UPDATE yoksa INSERT yapmak‏

Bu işlem için 2 yöntem izlenebilir. Bu yöntemlere bir gözatalım.

Yöntem 1-)

string sorgu = @"UPDATE Tablo1 SET Kolon1 = @Kolon1_Degeri WHERE ID = @ID
IF @@ROWCOUNT = 0
BEGIN
INSERT INTO Tablo1 (Kolon1) VALUES (@Kolon1_Degeri)
END";

Burada öncelikle update işlemi gerçekleşiyor.ROWCOUNT = 0 ise demekki güncellenecek kayıt yok o zamanda yeni kayıt işlemi gerçekleşiyor..






Açıklama :
Burada öncelikle update işlemi gerçekleşiyor.ROWCOUNT = 0 ise demekki güncellenecek kayıt yok o zamanda yeni kayıt işlemi gerçekleşiyor..



Yöntem 2-)

string sorgu = @" IF EXISTS(SELECT ID FROM Tablo1 WHERE ID = @ID)
BEGIN
UPDATE Tablo1 SET Kolon1= @Kolon1_Degeri WHERE ID = @ID
END
ELSE
BEGIN
INSERT INTO Tablo1 (ID, Kolon1) VALUES (@ID, @Kolon1_Degeri)
END";


Açıklama:
Bu Yöntemde ise öncelikle kaydın var olup olmadığı belirleniyor.Kayıt varsa Güncelleme Yoksa Ekleme yapıyor.


Örnek SQL Cümle : (Yöntem 2 ye göre düzenlenmiştir.
 
IF EXISTS(SELECT ID FROM elektrik WHERE ID = 2)
BEGIN
UPDATE elektrik SET T1= '999' WHERE ID = 2
END
ELSE
BEGIN
INSERT INTO elektrik (T1, T2, T3) VALUES (999,999,999)
END
Açıklama: 
Örnek cümlede ID Numara değeri 2 olan satır varmı diye bakıyor, varsa update cümlesi çalışacak yokise insert cümlesi çalışacaktır.

20 Nisan 2013 Cumartesi

MSSQL Identity ve MySQL Auto Increment Reset

Merhabalar,

MSSQL ve MySQL de bir tabloyu delete from table şeklinde sildiğimizde herşey silinir sıfır(0) dan başlar fakat, MSSQL de identity MySQL de Auto Increment değerimiz tabloyu silmeden önceki son değerden devam eder.

Silmiş olduğumuz tabloda identity ve Auto Increment değerinide 1(Bir) den başlatmak istiyorsak aşağıdaki kod ile yapabiliriz.

MSSQL İçin;
DBCC CHECKIDENT (TabloAdı, reseed, 0)



MySQL İçin;
Alter Table `Tabloadi` AUTO_INCREMENT=1 

18 Nisan 2013 Perşembe

JavaScript ile 4 İşlem Örneği

Merhabalar,

Web uygulamalarında toplama,çıkarma,bölme,çarpma işlemlerini Javascript ile nasıl yaparız bunu görelim.

Html form içinde 2 adet tanımlı textbox alana yazılı olan sayısal değerlerle uygulamımızı test edelim.

İlgili Fonksiyon Tanımları;


function topla()
{
 var sayi1 = parseInt(document.getElementById("text1").value);
 var sayi2 = parseInt(document.getElementById("text2").value);
 var toplam=(sayi1)+(sayi2);
 alert(toplam);


}
function cıkar()
{
 var sayi1 = parseInt(document.getElementById("text1").value);
 var sayi2 = parseInt(document.getElementById("text2").value);
 var toplam=sayi1-sayi2;
 alert(toplam); 
}
function bol()

  var sayi1 = parseInt(document.getElementById("text1").value);
 var sayi2 = parseInt(document.getElementById("text2").value);
 var toplam=sayi1/sayi2;
 alert(toplam);
}
function carp()
{ var sayi1 = parseInt(document.getElementById("text1").value);
 var sayi2 = parseInt(document.getElementById("text2").value);
 var toplam=sayi1*sayi2;
 alert(toplam);
}




Untitled Document
sayi1:
sayi2:

C# Saat:Dakika değerini integer değere --- İnteger değeri Saat:Dakika ya çeviren metodlar‏

Merhabalar,

C# da bazı durumlarda saat:dakika değerlerini integer tipine çevirip veritabanına kaydedip, tekrar bu integer değere okuyup saat:dakika ya çevirmemiz gerekebilir.

Bu convert durumlarını aşağıdaki metodlar yardımı ile yapabiliriz.



public string ZamanaCevir(int timeSeconds)
{
int mySeconds = System.Convert.ToInt32(timeSeconds);
int myHours = mySeconds / 3600;
mySeconds %= 3600;
int myMinutes = mySeconds / 60;
mySeconds %= 60;
string mySec = mySeconds.ToString(),
myMin = myMinutes.ToString(),
myHou = myHours.ToString();
if (myHours < 10) { myHou = myHou.Insert(0, "0"); }
if (myMinutes < 10) { myMin = myMin.Insert(0, "0"); }
if (mySeconds < 10) { mySec = mySec.Insert(0, "0"); }
return myHou + ":" + myMin + ":" + mySec;
}



private int SayiyaCevir(string sure)
{
string time = sure;
int[] ssmmhh = { 0, 0, 0 };
var hhmmss = time.Split(':');
var reversed = hhmmss.Reverse();
int i = 0;
reversed.ToList().ForEach(x => ssmmhh[i++] = int.Parse(x));
var seconds = (int)(new TimeSpan(ssmmhh[2], ssmmhh[1], ssmmhh[0])).TotalSeconds;
return seconds;
}

C# İki Array Karşılaştırılması‏

Merhabalar,

Array karşılaştırma ile ilgili .Net in hazır fonksiyonlarından 2 örnek verelim.

string[] sonuc= dizi1.Except(dizi2).ToArray();   
//dizi2'de bulunup dizi1'de bulunmayan elemanları sonuç dizisine aktarır. 
 string[] sonuc= dizi1.Intersect(dizi2).ToArray();  
//dizi1 ve dizi2'de ortak olarak bulunan elemanları sonuç dizisine aktarır.

MSSQL Değişken Üzerinden Toplama‏

Merhabalar,

MSSQL de bazı noktalarda select sonuclarını karşılaştırıp bunları matematiksel işlemleri sokmak isteriz.

Bu yazımızda 2 sql sonucu 2 farklı değişkene yükleyip bunları toplamını alma işlemini görelim.



declare @deger1 int
declare @deger2 int

select @deger1 = sum(tutar)-sum(iskonto) from STOK WHERE STOKKODU ='8'  

and cinsi ='04'
select @deger2 = sum(aratoplam)-sum(iskonto) from STOK WHERE STOKKODU ='8' 

andTIP ='04'

select @deger1+@deger2