14 Temmuz 2009 Salı

INSERT INTO SELECT

Kim SQL kullanarak bir tablodaki verilerini başka tabloya kopyalamak istemez.Tabiki kopyalanacak veri tiplerinin uyumlu olması kaçınılmaz.
insert into tablo1 (val1,val2) Values('deg1','deg2') şeklindeki standart kullanımdan biraz farklı olarak values yerine yeni bir select sorgusu getirerek dönen değerlerin tabloya eklenmesi sağlanır.
insert into mla_Rev (LanguageID, AppID) select LanguageID, AppID FROM mla_Rev WHERE (RevID = 8)"

C# Stored Procedure Eklenen Kaydın Değerini Almak

Senaryo: Bir Kayıt eklediniz.ve eklenen kaydın id numarasını alarak başka işler yapacaksınız.Peki nasıl alırsınız bu değeri.Stored Procedure kullanarak.

öncelikle Stored Procedure
insert sorgusunda bir değişiklik yapmalıyız

CREATE PROCEDURE SPISIMKAYIT
@dSupplierName varchar(50),
@dSupplierAddress varchar(50),
@dSupplierTel nchar(10),

@ID int out
AS
insert into tbSuppliers (SupplierName,
SupplierAddress,SupplierTel)values
(@dSupplierName,@dSupplierAddress
,@dSupplierTel)SET @ID = SCOPE_IDENTITY()


hazırlamış olduğumuz Stored Procedure oluşturduk. Peki C# nasıl geri dönecek bu zımbırtı.
public int InsertSupplier()
{
SqlCommand cmd = new SqlCommand("Supplier_Add");
cmd.Parameters.Add("@dSupplierName", SqlDbType.VarChar).Value = supplier.SupplierName;
cmd.Parameters.Add("@dSupplierAddress", SqlDbType.VarChar).Value = supplier.SupplierAddress;
cmd.Parameters.Add("@dSupplierTel", SqlDbType.VarChar).Value = supplier.SupplierTel;
cmd.Parameters.Add("@ID", SqlDbType.Int).Direction = ParameterDirection.Output;
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = Connections.Connection();
Connections.Open();
cmd.ExecuteScalar();
int sonid = Convert.ToInt32(cmd.Parameters["@ID"].Value);
return sonid;
}

işte böylede geri dönerek eklediğimiz kaydın id'si

10 Temmuz 2009 Cuma

Arraylist

Dizilerde çalışmanın bir çok sıkıntısı olduğu bilir.Öncelikle dizinin eleman sayısı yazılmalıdır.Ayırca Dizinin eleman sayısının kestirilemeyeceği noktalarda oldukca büyük diziler tanımlamak gerekir.Bu diziler bellekde yer işgal eder ve yinede bir çok seneryoda elimizdeki diziden daha fazla sayıda diziye ihtiyacımız olamayacağının kestiremeyebiliriz.Sonunda ne olur IndexOutOfRangeException istisnası size fırlatılıverir.

işte dizi sıkıntılarından bizi kurtaracak süper bir yol Arraylist istediğiniz kadar bilgiyi ayrıca istediğiniz tiptekini arraylist altında kolayca tutarız.

ArrayList KList= new ArrayList(); // KListisimli ArrayList nesnesi oluşturalım.

// KListnesnemize sırası karışık tipler yükleyelim
// Add metodu ile ekleyelim.
KList.Add("Ahmet");
KList.Add(12);
KList.Add(true);
KList.Add(32.4f);
KList.Add('c');

// aList'in elemanlarını ekrana yazdıryoruz:
Console.WriteLine("\t KList'in elemanları:");
foreach(int eleman in KList)
Console.WriteLine(eleman);



unutmamamız gereken bir şey var arraylist using System.Collections sınıfı altında bulunduğu için dahil edilmeli.


ArayList Diğer fonksiyonları aşağıda listelenmektedir.
---------------------------------------------------
Add Bir nesneyi ArrayList'in sonuna ekler.

BinarySearch Sıralanmış bir ArrayList içinde bir nesneyi Binary search algoritması kullanarak arar.

Clear ArrayList'in tüm elemanlarını siler. Sıfırlar.

Contains Herhangi bir nesnenin ArrayList'in elemanı olup olmadığını kontrol eder.

Insert Dizinin sonuna değilde istediğimiz bir yerine indeksini belirterek eklememizi sağlar.

Remove Herhangi bir elemanı diziden siler.

Reverse Diziyi ters çevirir.

Sort ArrayList'i sıralar.

9 Temmuz 2009 Perşembe

Alternatif içecek Arayışları 1 - vişne suyu & meyveli buzlu çay


malzemeler:

•1 kg vişne
•yaklaşık 1,5 litre su
•2 su bardağı toz şeker (miktarını kendi isteğinize göre ayarlayabilirsiniz)
•yarım limonun suyu
hazırlanması:

1. 1 kg vişneyi yıkayıp saplarını koparın. vişneleri geniş ve derin bir tencereye alın. tencereye vişnelerin üzerlerini geçecek kadar su ekleyin. 2 su bardağı toz şekeri de ilave edip orta hararetli ateşte kaynamaya bırakın. (tencerenin kapağı taşma tehlikesine karşı açık olmalı)

2. vişne suyu kaynamaya başlayınca suyun renginin daha kırmızı olması için yarım limon suyunu ekleyin. kaynama işlemini vişneler çatlamaya başlayana kadar sürdürün. soğutup servis yapın.


ablamla üniversitemizin yaz okulu döneminde aynı dersi alırken (management dersiydi sanırım) tenefüs aralarında işletme binasının çaprazındaki kantine gidip birer ice tea alır, manzarada ders saatinin başlamasını beklerdik. ablam benden önce mezun olduktan sonra en çok birlikte geçirdiğimiz bu tenefüsleri özler olmuştum...
benim iki gün önce denediğim buzlu çay tarifini ayşen hanım mutfaktazen mail grubuna göndermişti. onun anlatımını değiştirmeden aktarıyorum.

Sıcaklarda en ferahlatan içeceklerin başında gelir bence ice tea yani soğuk çay. Evde en lezzetlilerini çabuk ve kolayca yapabiliriz.. Ben bir tarafta porselen demlikte siyah çayı 3-5 dakika bırakıyorum ve içine meyva parçaları atıyorum. En sevdiğim karışımlardan biri de çilek , şeftali ve bir kaç karanfil. Sürahinin en az yarısına kadar buzla dolduruyorum ve demi doğrudan buzların üstüne döküyorum . Buzlar eridikten sonra gerektiği kadar su ekliyorum. yarım limonu içine sıkıp , yarım limonu da 4'e bölüp kabuklarıyla içine atıyorum. İstenen şekilde ( şeker , tatlandırıcı , salvia , bal ...) tatlandırdıktan sonra birazbuzdolabında bekliyor ve afiyetle içiliyor .
Soğuk çay yaparken püf noktası demin hemen soğutulması . Bu yüzden bol buz kullanmak gerek . Bu yapılmadığında tadı değişiyor ,acılaşıyor .

7 Temmuz 2009 Salı

Access Replace Function

Access'da Replace Fonksiyonun Syntax aşağıdaki gibi
"Replace ( string1, find, replacement, [start, [count, [compare]]] )"
Örneklerde isterseniz.

Replace("alphabet", "bet", "hydro") would return "alphahydro"
Replace ("alphabet", "a", "e") would return "elphebet"
Replace("alphabet", "a", "e", 2) would return "lphebet"
Replace("alphabet", "a", "e", 1, 1) would return "elphabet"

VBA codu olarakda

Dim LResult As String
LResult = Replace ("alphabet", "a", "e")

kullanılabilir.

Access combobox'un index değerine göre verinin comboboxda gösterilmesi

seneryo şöyle : Access üzerine satırlar girdiniz satırlar : a,b,c,d olsun satır indexleride bildiğiniz üzere 0,1,2,3 olur.Diyelimki indexi 2 olan combobox'ın verisi ne ?
(olayın tersi aslında oldukca basit seçili verinin index'ini almak kolay Combobox1.Listindex derdimize çare peki ya tersi index'i biliyoruz hangi veri karşılık geliyor buna )

Dim sallama As String
sallama = combobox1.ItemData(2) ' 2 numaralı list index'e karşılık gelen veriyi al
combobox1.SetFocus
combobox1.Text = sallama ' combobox tekrar yazdır

Polymorphism Nedir

Polymorphism (Çok Biçimlilik)
Nesne Yönelimlenin anlatması biraz karışık ilkelerinden biridir ama bir seneryo ile olayı anlatmaya çalışalım.Satınal isimli bir fonksiyonumuz olsun. eğer i ürünü satın alınacak ise sadece geriye i'yi geri döndüren bir fonksiyon olmalı.Peki Satınal i ve j gibi iki farklı ürününde satın alınmasında kullanılmak isteniyor işte bu durumda SatınAl fonksiyonu çok biçimli olarak ele almak iyi bir seçim olmalı hem kodu koyalım.

Module Module1

Sub Main()
Dim two As New One()
WriteLine(two.satinal(10))
'calls the function with one argument
WriteLine(two.satinal(10, 20))
'calls the function with two arguments
WriteLine(two.satinal(10, 20, 30))
'calls the function with three arguments
Read()
End Sub

End Module

Public Class One
Public i, j, k As Integer

Public Function satinal(ByVal i As Integer) As Integer
'function with one argument
Return i
End Function

Public Function satinal(ByVal i As Integer, ByVal j As Integer) As Integer
'function with two arguments
Return i + j
End Function

Public Function satinal(ByVal i As Integer, ByVal j As Integer, ByVal k As Integer) As Integer
'function with three arguments
Return i + j + k
End Function

End Class


Çıktı olarak da
10
30
60
üreteceği aşıkar