<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2turkishfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Yazan çizen Savaş Yaşar</title>
	
	<link>http://www.savasyasar.com/gunluk3</link>
	<description>Bilgisayar, Sinop, Gündem, Galatasaray ...</description>
	<lastBuildDate>Mon, 15 Feb 2010 14:34:34 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/savasyasar" /><feedburner:info uri="savasyasar" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>savasyasar</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2Fsavasyasar" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fsavasyasar" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2Fsavasyasar" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/savasyasar" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fsavasyasar" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><item>
		<title>As/400 temel bilgiler</title>
		<link>http://feedproxy.google.com/~r/savasyasar/~3/IKSY0omhEWk/</link>
		<comments>http://www.savasyasar.com/gunluk3/2010/02/as400-temel-bilgiler/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 14:33:25 +0000</pubDate>
		<dc:creator>Savaş Yaşar</dc:creator>
				<category><![CDATA[Bilgisayar]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[as/400]]></category>
		<category><![CDATA[eserver]]></category>
		<category><![CDATA[iseries]]></category>
		<category><![CDATA[os/400]]></category>

		<guid isPermaLink="false">http://www.savasyasar.com/gunluk3/?p=367</guid>
		<description><![CDATA[http://www.broculos.net/tutorials/as_400_chapter_1_introduction/20071026/en adresinde As/400&#8242;e yeni başlayanlar için faydalı bilgiler var. İnternette IBM As/400 ya da eServer ailesi ile ilgili IBM dışı kaynaklarda fazla bilgi yok. Bu adresi deneyebilirsiniz.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.broculos.net/tutorials/as_400_chapter_1_introduction/20071026/en">http://www.broculos.net/tutorials/as_400_chapter_1_introduction/20071026/en</a> adresinde As/400&#8242;e yeni başlayanlar için faydalı bilgiler var. İnternette IBM As/400 ya da eServer ailesi ile ilgili IBM dışı kaynaklarda fazla bilgi yok. Bu adresi deneyebilirsiniz.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/savasyasar?a=IKSY0omhEWk:38AxTRPJycc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/savasyasar?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/savasyasar?a=IKSY0omhEWk:38AxTRPJycc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/savasyasar?i=IKSY0omhEWk:38AxTRPJycc:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/savasyasar/~4/IKSY0omhEWk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.savasyasar.com/gunluk3/2010/02/as400-temel-bilgiler/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.savasyasar.com/gunluk3/2010/02/as400-temel-bilgiler/</feedburner:origLink></item>
		<item>
		<title>Sql ile Turkcell Süperlig simülasyonu</title>
		<link>http://feedproxy.google.com/~r/savasyasar/~3/cVUIFhgWjAw/</link>
		<comments>http://www.savasyasar.com/gunluk3/2009/12/sql-ile-turkcell-superlig-simulasyonu/#comments</comments>
		<pubDate>Fri, 25 Dec 2009 22:47:38 +0000</pubDate>
		<dc:creator>Savaş Yaşar</dc:creator>
				<category><![CDATA[Bilgisayar]]></category>
		<category><![CDATA[Manşet]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[sunucu tabanlı bilgi işlem]]></category>

		<guid isPermaLink="false">http://www.savasyasar.com/gunluk3/?p=364</guid>
		<description><![CDATA[Sql ile süperlig simülasyonu:  temporary table, trigger, stored procedure kullanımı örnek]]></description>
			<content:encoded><![CDATA[<p>Sql ile yapabileceklerinizin sınırı sizinle başlıyor sizinle bitiyor. Buradaki örneğin amacı Süperlig puan durumu tablosundan yola çıkarak maçları, fikstürü oluşturmak, maçları rasgele skorlarla oynatmak, rastgele skorlara uygun şekilde puan cetvelini güncellemek.</p>
<p>Konu: herhangi bir spor ligindeki takımların fikstürünü oluşturmak, maçları oynatmak, oluşan sonuçlara göre puan cetvelini güncellemek.<br />
Amaç: Mümkün olan en az sayıda komutla ve en hızlı sürede işi bitirmek.<br />
Verilenler: Sql, Puan Cetveli, Geçici Tablolar, Tetikleyiciler, Cursor<span id="more-364"></span></p>
<p>Adım 1: Tabloları oluşturmak</p>
<p>&#8211; Puan cetveli<br />
&#8211; Maçları ve sonuçları bu tabloda tutacağız. Sql ile Takim tablosu içeriğine göre buraya dolduracağız. Maçlara rastgele sonuçları işleyeceğiz.</p>
<blockquote><p>CREATE TABLE [dbo].[Takim](<br />
 [TakimID] [tinyint] IDENTITY(1,1) NOT NULL,<br />
 [TakimAdi] [nvarchar](50) NULL,<br />
 [OynadigiMac] [tinyint] NULL,<br />
 [Galibiyet] [tinyint] NULL,<br />
 [Malubiyet] [tinyint] NULL,<br />
 [Beraberlik] [tinyint] NULL,<br />
 [Avaraj] [int] NULL,<br />
 [AttigiGol] [int] NULL,<br />
 [YedigiGol] [int] NULL,<br />
 [PuanDurumu] [int] NULL,<br />
 CONSTRAINT [PK_PuanDurumu] PRIMARY KEY CLUSTERED<br />
(<br />
 [TakimID] ASC<br />
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]<br />
) ON [PRIMARY]</p></blockquote>
<blockquote><p>CREATE TABLE [dbo].[Maclar](<br />
[MacID] [int] IDENTITY(1,1) NOT NULL,<br />
[EvSahibiTakim] [tinyint] NULL,<br />
[RakipTakim] [tinyint] NULL,<br />
[EAttigiGol] [tinyint] NULL,<br />
[RAttigiGol] [tinyint] NULL,<br />
[Hafta] [tinyint] NULL,<br />
CONSTRAINT [PK_Maclar] PRIMARY KEY CLUSTERED ([MacID] ASC)<br />
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]TABLE [dbo].[Takim](<br />
[TakimID] [tinyint] IDENTITY(1,1) NOT NULL,<br />
[TakimAdi] [nvarchar](50) NULL,<br />
[OynadigiMac] [tinyint] NULL,<br />
[Galibiyet] [tinyint] NULL,<br />
[Malubiyet] [tinyint] NULL,<br />
[Beraberlik] [tinyint] NULL,<br />
[Avaraj] [int] NULL,<br />
[AttigiGol] [int] NULL,<br />
[YedigiGol] [int] NULL,<br />
[PuanDurumu] [int] NULL, CONSTRAINT [PK_PuanDurumu] PRIMARY KEY CLUSTERED ([TakimID]ASC )<br />
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]</p></blockquote>
<p> Tabloları oluşturduktan sonra Takim tablosunun içini doldurabiliriz.</p>
<blockquote><p>INSERT [dbo].[Takim] ([TakimID], [TakimAdi], [OynadigiMac], [Galibiyet], [Malubiyet], [Beraberlik], [Avaraj], [AttigiGol], [YedigiGol], [PuanDurumu]) VALUES (1, N&#8217;GALATASARAY&#8217;, 0, 0, 0, 0, 0, 0, 0, 0)<br />
INSERT [dbo].[Takim] ([TakimID], [TakimAdi], [OynadigiMac], [Galibiyet], [Malubiyet], [Beraberlik], [Avaraj], [AttigiGol], [YedigiGol], [PuanDurumu]) VALUES (2, N&#8217;FENERBAHCE&#8217;, 0, 0, 0, 0, 0, 0, 0, 0)<br />
INSERT [dbo].[Takim] ([TakimID], [TakimAdi], [OynadigiMac], [Galibiyet], [Malubiyet], [Beraberlik], [Avaraj], [AttigiGol], [YedigiGol], [PuanDurumu]) VALUES (3, N&#8217;BURSASPOR&#8217;, 0, 0, 0, 0, 0, 0, 0, 0)<br />
INSERT [dbo].[Takim] ([TakimID], [TakimAdi], [OynadigiMac], [Galibiyet], [Malubiyet], [Beraberlik], [Avaraj], [AttigiGol], [YedigiGol], [PuanDurumu]) VALUES (4, N&#8217;KAYSERISPOR&#8217;, 0, 0, 0, 0, 0, 0, 0, 0)<br />
INSERT [dbo].[Takim] ([TakimID], [TakimAdi], [OynadigiMac], [Galibiyet], [Malubiyet], [Beraberlik], [Avaraj], [AttigiGol], [YedigiGol], [PuanDurumu]) VALUES (5, N&#8217;BESIKTAS&#8217;, 0, 0, 0, 0, 0, 0, 0, 0)<br />
INSERT [dbo].[Takim] ([TakimID], [TakimAdi], [OynadigiMac], [Galibiyet], [Malubiyet], [Beraberlik], [Avaraj], [AttigiGol], [YedigiGol], [PuanDurumu]) VALUES (6, N&#8217;TRABZONSPOR&#8217;, 0, 0, 0, 0, 0, 0, 0, 0)<br />
INSERT [dbo].[Takim] ([TakimID], [TakimAdi], [OynadigiMac], [Galibiyet], [Malubiyet], [Beraberlik], [Avaraj], [AttigiGol], [YedigiGol], [PuanDurumu]) VALUES (7, N&#8217;GENCLERBIRLIGI&#8217;, 0, 0, 0, 0, 0, 0, 0, 0)<br />
INSERT [dbo].[Takim] ([TakimID], [TakimAdi], [OynadigiMac], [Galibiyet], [Malubiyet], [Beraberlik], [Avaraj], [AttigiGol], [YedigiGol], [PuanDurumu]) VALUES (8, N&#8217;ISTANBULSPOR&#8217;, 0, 0, 0, 0, 0, 0, 0, 0)<br />
INSERT [dbo].[Takim] ([TakimID], [TakimAdi], [OynadigiMac], [Galibiyet], [Malubiyet], [Beraberlik], [Avaraj], [AttigiGol], [YedigiGol], [PuanDurumu]) VALUES (9, N&#8217;ESKISEHIRSPOR&#8217;, 0, 0, 0, 0, 0, 0, 0, 0)<br />
INSERT [dbo].[Takim] ([TakimID], [TakimAdi], [OynadigiMac], [Galibiyet], [Malubiyet], [Beraberlik], [Avaraj], [AttigiGol], [YedigiGol], [PuanDurumu]) VALUES (10, N&#8217;ANTALYASPOR&#8217;, 0, 0, 0, 0, 0, 0, 0, 0)<br />
INSERT [dbo].[Takim] ([TakimID], [TakimAdi], [OynadigiMac], [Galibiyet], [Malubiyet], [Beraberlik], [Avaraj], [AttigiGol], [YedigiGol], [PuanDurumu]) VALUES (11, N&#8217;GAZIANTEPSPOR&#8217;, 0, 0, 0, 0, 0, 0, 0, 0)<br />
INSERT [dbo].[Takim] ([TakimID], [TakimAdi], [OynadigiMac], [Galibiyet], [Malubiyet], [Beraberlik], [Avaraj], [AttigiGol], [YedigiGol], [PuanDurumu]) VALUES (12, N&#8217;KASIMPASASPOR&#8217;, 0, 0, 0, 0, 0, 0, 0, 0)<br />
INSERT [dbo].[Takim] ([TakimID], [TakimAdi], [OynadigiMac], [Galibiyet], [Malubiyet], [Beraberlik], [Avaraj], [AttigiGol], [YedigiGol], [PuanDurumu]) VALUES (13, N&#8217;MANISASPOR&#8217;, 0, 0, 0, 0, 0, 0, 0, 0)<br />
INSERT [dbo].[Takim] ([TakimID], [TakimAdi], [OynadigiMac], [Galibiyet], [Malubiyet], [Beraberlik], [Avaraj], [AttigiGol], [YedigiGol], [PuanDurumu]) VALUES (14, N&#8217;DIYARBAKIR&#8217;, 0, 0, 0, 0, 0, 0, 0, 0)<br />
INSERT [dbo].[Takim] ([TakimID], [TakimAdi], [OynadigiMac], [Galibiyet], [Malubiyet], [Beraberlik], [Avaraj], [AttigiGol], [YedigiGol], [PuanDurumu]) VALUES (15, N&#8217;ANKARAGUCU&#8217;, 0, 0, 0, 0, 0, 0, 0, 0)<br />
INSERT [dbo].[Takim] ([TakimID], [TakimAdi], [OynadigiMac], [Galibiyet], [Malubiyet], [Beraberlik], [Avaraj], [AttigiGol], [YedigiGol], [PuanDurumu]) VALUES (16, N&#8217;SIVASSPOR&#8217;, 0, 0, 0, 0, 0, 0, 0, 0)<br />
INSERT [dbo].[Takim] ([TakimID], [TakimAdi], [OynadigiMac], [Galibiyet], [Malubiyet], [Beraberlik], [Avaraj], [AttigiGol], [YedigiGol], [PuanDurumu]) VALUES (17, N&#8217;DENIZLISPOR&#8217;, 0, 0, 0, 0, 0, 0, 0, 0)<br />
INSERT [dbo].[Takim] ([TakimID], [TakimAdi], [OynadigiMac], [Galibiyet], [Malubiyet], [Beraberlik], [Avaraj], [AttigiGol], [YedigiGol], [PuanDurumu]) VALUES (18, N&#8217;ANKARASPOR&#8217;, 0, 0, 0, 0, 0, 0, 0, 0)<br />
SET IDENTITY_INSERT [dbo].[Takim] OFF</p></blockquote>
<p>Ligi yeniden simüle etmeden önce mevcut sonuçları temizlemek için kullanılacak yordam:</p>
<blockquote><p>CREATE PROCEDURE [dbo].[sp_PuanlariSifirla]<br />
 &#8211; Add the parameters for the stored procedure here<br />
AS<br />
BEGIN<br />
 &#8211; SET NOCOUNT ON added to prevent extra result sets from<br />
 &#8211; interfering with SELECT statements.<br />
 SET NOCOUNT ON;</p>
<p>    &#8212; Insert statements for procedure here<br />
    truncate table maclar<br />
 update Takim set OynadigiMac=0, Galibiyet=0, Malubiyet=0,Beraberlik=0,Avaraj=0,AttigiGol=0,YedigiGol=0,PuanDurumu=0;<br />
END</p></blockquote>
<p>Olası bütün maçları gösteren sql görünümü için sql sorgusu veya görünüm kullanılabilir.</p>
<blockquote><p>create view [dbo].[v_OlasiMaclar] as<br />
select evsahibi.TakimID as evsahibid, evsahibi.TakimAdi as evsahibiadi, konuk.TakimID as konukid, konuk.TakimAdi as konukadi, evsahibi.TakimID*100+konuk.TakimID as mackodu from Takim evsahibi cross join Takim konuk where evsahibi.TakimID&lt;&gt;konuk.TakimID</p></blockquote>
<p>Olası maçları takvime yaymak lazım. Bazı şartları sağlayıp sağlamadığı kontrol edilmemiş ama maçları haftalara yayma işlemini yapan aşağıdaki yordam fikstürü oluşturmak için kullanılıyor.</p>
<blockquote><p>CREATE PROCEDURE [dbo].[sp_FiksturOlustur]<br />
AS<br />
BEGIN<br />
 SET NOCOUNT ON;<br />
 truncate table maclar;<br />
 select *, 0 as Oynandi, 0 as Secilemez into #tmpMaclar from v_OlasiMaclar<br />
 select TakimID, TakimAdi, 0 as Oynadi, 0 as OynadigiMacSayisi into #tmpTakimlar from Takim order by TakimID asc<br />
 declare @takimsayisi int,<br />
 @macsayisi int,<br />
 @evsahibi tinyint,<br />
 @misafir tinyint,<br />
 @hafta int,<br />
 @haftasayac int,<br />
 @macid int,<br />
 @toplammacsayisi int<br />
 <br />
 set @takimsayisi = (select COUNT(*) from #tmpTakimlar)<br />
 set @macsayisi = @takimsayisi / 2<br />
 set @hafta = @takimsayisi*2-2<br />
 set @haftasayac = 1<br />
 set @toplammacsayisi=0<br />
 while (((select COUNT(*) from #tmpMaclar)&gt;0) and (@haftasayac &lt;= @hafta))<br />
 begin<br />
 while ((select COUNT(*) from #tmpTakimlar where (Oynadi = 0) and (OynadigiMacSayisi=(@haftasayac-1))) &gt; 0)<br />
 begin<br />
  set @evsahibi = (select top 1 TakimID from #tmpTakimlar where oynadi=0 order by NEWID())<br />
  set @misafir = (select top 1 TakimID from #tmpTakimlar where TakimID &lt;&gt; @evsahibi and Oynadi=0 order by NEWID())<br />
  set @macid = (select mackodu from #tmpMaclar where Evsahibid=@evsahibi and konukid=@misafir)<br />
  update #tmpTakimlar set Oynadi = 1, OynadigiMacSayisi=(OynadigiMacSayisi+1) where TakimID=@evsahibi <br />
  update #tmpTakimlar set Oynadi = 1, OynadigiMacSayisi=(OynadigiMacSayisi+1) where TakimID=@misafir<br />
  insert into Maclar (EvSahibiTakim,RakipTakim,Hafta) values (@evsahibi, @misafir, @haftasayac)<br />
  delete from #tmpMaclar where mackodu=@macid<br />
  update #tmpMaclar set Secilemez=1 where evsahibid=@evsahibi<br />
  update #tmpMaclar set Secilemez=1 where evsahibid=@misafir<br />
  update #tmpMaclar set Secilemez=1 where konukid=@evsahibi<br />
  update #tmpMaclar set Secilemez=1 where konukid=@misafir<br />
  end<br />
 update #tmpTakimlar set Oynadi=0<br />
 update #tmpMaclar set Secilemez = 0<br />
 set @haftasayac=@haftasayac+1<br />
end<br />
drop table #tmpTakimlar<br />
drop table #tmpMaclar<br />
END</p></blockquote>
<p>Maçları rastgele sırada oynatmak için aşağıdaki saklı yordam kullanılabilir. Bu saklı yordam oluşturulan fikstür üzerinde gezerek maç skorlarını fikstür tablosunda günceller. Maçlar tablosu üzerindeki update trigger&#8217;ı vasıtası ile puan cetvelinde gerekli işlemler yapılır.</p>
<blockquote><p>CREATE PROCEDURE [dbo].[sp_MaclariOynat_v2]<br />
 &#8211; Add the parameters for the stored procedure here<br />
AS<br />
BEGIN<br />
 &#8211; SET NOCOUNT ON added to prevent extra result sets from<br />
 &#8211; interfering with SELECT statements.<br />
 SET NOCOUNT ON;<br />
 declare @evsahibi tinyint,<br />
 @misafir tinyint,<br />
 @evsahibigol tinyint,<br />
 @misafirgol tinyint,<br />
 @oynatalimugurcum cursor<br />
 set @oynatalimugurcum = CURSOR FOR select EAttigiGol,RAttigiGol from maclar<br />
 open @oynatalimugurcum<br />
 fetch next from @oynatalimugurcum into @evsahibigol, @misafirgol<br />
 while (@@fetch_status=0)<br />
 begin<br />
 set @evsahibigol=rand()*10<br />
 set @misafirgol=rand()*10<br />
 UPDATE Maclar<br />
 SET Eattigigol = @evsahibigol,<br />
 Rattigigol = @misafirgol<br />
 WHERE CURRENT OF @oynatalimugurcum<br />
 fetch next from @oynatalimugurcum into @evsahibigol, @misafirgol<br />
 end<br />
 close @oynatalimugurcum<br />
 deallocate @oynatalimugurcum<br />
END</p></blockquote>
<p>Ve işte malum trigger:</p>
<blockquote><p>create trigger [dbo].[trig_puantablosunuisle]<br />
on [dbo].[Maclar]<br />
after update<br />
as<br />
begin<br />
&#8211; ne yapacak<br />
&#8211; kazanan takimin puanini 3 arttiracak, attığı gol varsa yediği gol, averaj değiştirilecek<br />
&#8211; beraberlikse her iki takımın puanını 3 arttıracak<br />
&#8211; yenilen takımın puanı değişmeyecek<br />
if (select count(*) from inserted) &gt; 1 &#8212; eğer birden fazla maçı toplu güncellemek isterse engelle<br />
rollback tran<br />
else<br />
begin<br />
declare @evsahibi tinyint,<br />
@misafir tinyint,<br />
@evsahibigol tinyint,<br />
@misafirgol tinyint<br />
set @evsahibi = (select evsahibitakim from inserted)<br />
set @evsahibigol = (select eattigigol from inserted)<br />
set @misafir = (select rakiptakim from inserted)<br />
set @misafirgol = (select rattigigol from inserted)<br />
if (@evsahibigol =@misafirgol) &#8211;her iki takımda bir puan aldı<br />
begin<br />
 update takim set puandurumu=puandurumu+1, oynadigimac=oynadigimac+1,beraberlik=beraberlik+1, attigigol=attigigol+@evsahibigol, yedigigol=yedigigol+@evsahibigol where TakimID= @evsahibi<br />
 update takim set puandurumu=puandurumu+1, oynadigimac=oynadigimac+1,beraberlik=beraberlik+1, attigigol=attigigol+@evsahibigol, yedigigol=yedigigol+@evsahibigol where TakimID= @misafir<br />
end<br />
else if (@evsahibigol &gt;@misafirgol)<br />
begin<br />
update takim set puandurumu=puandurumu+3, oynadigimac=oynadigimac+1,galibiyet=galibiyet+1, attigigol=attigigol+@evsahibigol, yedigigol=yedigigol+@misafirgol, avaraj=avaraj+@evsahibigol-@misafirgol where TakimID= @evsahibi<br />
update takim set oynadigimac=oynadigimac+1,malubiyet=malubiyet+1, attigigol=attigigol+@misafirgol, yedigigol=yedigigol+@evsahibigol, avaraj=avaraj-@evsahibigol+@misafirgol where TakimID= @misafir<br />
end<br />
else<br />
begin<br />
update takim set puandurumu=puandurumu+3, oynadigimac=oynadigimac+1,galibiyet=galibiyet+1, attigigol=attigigol+@misafirgol, yedigigol=yedigigol+@evsahibigol, avaraj=avaraj-@evsahibigol+@misafirgol where TakimID= @misafir<br />
update takim set oynadigimac=oynadigimac+1,malubiyet=malubiyet+1, attigigol=attigigol+@evsahibigol, yedigigol=yedigigol+@misafirgol, avaraj=avaraj+@evsahibigol-@misafirgol where TakimID= @evsahibi<br />
end<br />
end<br />
end </p></blockquote>
<p>Aynı lig simülasyonunu yeniden gerçekleştiren son yordamımız:</p>
<blockquote><p>CREATE PROCEDURE [dbo].[sp_LigiOynat]<br />
 &#8211; Add the parameters for the stored procedure here <br />
AS<br />
BEGIN<br />
 &#8211; SET NOCOUNT ON added to prevent extra result sets from<br />
 &#8211; interfering with SELECT statements.<br />
 SET NOCOUNT ON;<br />
    exec sp_PuanlariSifirla<br />
    exec sp_FiksturOlustur<br />
    exec sp_MaclariOynat_v2<br />
END</p></blockquote>
<p>Ve sonuç:</p>
<p><a href="http://www.savasyasar.com/gunluk3/wp-content/uploads/2009/12/SuperLig.jpg"><img class="size-medium wp-image-365 alignnone" title="SuperLig" src="http://www.savasyasar.com/gunluk3/wp-content/uploads/2009/12/SuperLig-300x217.jpg" alt="" width="300" height="217" /></a></p>
<p>Devamını bu <a href="http://cid-b49262d232e16dd8.skydrive.live.com/self.aspx/Ortak/YV2302/Sql/SuperLig-reloaded-final.rar" target="_blank">sql </a>dosyasında bulabilirsiniz.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/savasyasar?a=cVUIFhgWjAw:-yC-UX5-AHk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/savasyasar?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/savasyasar?a=cVUIFhgWjAw:-yC-UX5-AHk:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/savasyasar?i=cVUIFhgWjAw:-yC-UX5-AHk:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/savasyasar/~4/cVUIFhgWjAw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.savasyasar.com/gunluk3/2009/12/sql-ile-turkcell-superlig-simulasyonu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.savasyasar.com/gunluk3/2009/12/sql-ile-turkcell-superlig-simulasyonu/</feedburner:origLink></item>
		<item>
		<title>Özlem Özdil – Gönlüm Dağlarda</title>
		<link>http://feedproxy.google.com/~r/savasyasar/~3/MWxqN3UlmBI/</link>
		<comments>http://www.savasyasar.com/gunluk3/2009/12/ozlem-ozdil-gonlum-daglarda/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 18:52:45 +0000</pubDate>
		<dc:creator>Savaş Yaşar</dc:creator>
				<category><![CDATA[Genel]]></category>
		<category><![CDATA[Müzik]]></category>
		<category><![CDATA[mp3]]></category>
		<category><![CDATA[musiki]]></category>
		<category><![CDATA[özlem özdil]]></category>
		<category><![CDATA[sevdiğim müzikler]]></category>

		<guid isPermaLink="false">http://www.savasyasar.com/gunluk3/?p=355</guid>
		<description><![CDATA[Parmaklıklar Ardında dizisi ile haberdar olduğum Özlem Özdil&#8216;in seslendirdiği ve çok güzel yorumladığı &#8220;Gönlüm Dağlarda&#8221; isimli şarkı ile sizleri başbaşa bırakıyorum.
Bulutlardan Haber Saldım Sen Gelecektin
Yağmuryağdı Gözlerime Sen Silecektin
Taş Duvarlar Sıkar Beni
Gönlüm Dağlarda
Resmin Çizdim Hasret Kokan Duvarlarıma
Güller Diktim Penceremin Ön Tarafına Ama
Kelepçeler Sıkar Beni (Demir Kapı Sıkar Beni)
Gönlüm Dağlarda
ya da
]]></description>
			<content:encoded><![CDATA[<p>Parmaklıklar Ardında dizisi ile haberdar olduğum <strong>Özlem Özdil</strong>&#8216;in seslendirdiği ve çok güzel yorumladığı &#8220;<strong>Gönlüm Dağlarda&#8221;</strong> isimli şarkı ile sizleri başbaşa bırakıyorum.</p>
<p><span id="more-355"></span>Bulutlardan Haber Saldım Sen Gelecektin<br />
Yağmuryağdı Gözlerime Sen Silecektin<br />
Taş Duvarlar Sıkar Beni<br />
Gönlüm Dağlarda</p>
<p>Resmin Çizdim Hasret Kokan Duvarlarıma<br />
Güller Diktim Penceremin Ön Tarafına Ama<br />
Kelepçeler Sıkar Beni (Demir Kapı Sıkar Beni)<br />
Gönlüm Dağlarda</p>
<p><a href="http://www.savasyasar.com/gunluk3/2009/12/ozlem-ozdil-gonlum-daglarda/"><em>Click here to view the embedded video.</em></a></p>
<p>ya da</p>
<p><a href="http://www.savasyasar.com/gunluk3/2009/12/ozlem-ozdil-gonlum-daglarda/"><em>Click here to view the embedded video.</em></a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/savasyasar?a=MWxqN3UlmBI:W00RQ_MlDYg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/savasyasar?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/savasyasar?a=MWxqN3UlmBI:W00RQ_MlDYg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/savasyasar?i=MWxqN3UlmBI:W00RQ_MlDYg:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/savasyasar/~4/MWxqN3UlmBI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.savasyasar.com/gunluk3/2009/12/ozlem-ozdil-gonlum-daglarda/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.savasyasar.com/gunluk3/2009/12/ozlem-ozdil-gonlum-daglarda/</feedburner:origLink></item>
		<item>
		<title>Kader Çetintürk – Sevmek günahsa eğer</title>
		<link>http://feedproxy.google.com/~r/savasyasar/~3/0GX6AD6e6Do/</link>
		<comments>http://www.savasyasar.com/gunluk3/2009/12/kader-cetinturk-sevmek-gunahsa-eger/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 17:31:48 +0000</pubDate>
		<dc:creator>Savaş Yaşar</dc:creator>
				<category><![CDATA[Müzik]]></category>
		<category><![CDATA[Seçmece]]></category>
		<category><![CDATA[kader]]></category>
		<category><![CDATA[mp3]]></category>
		<category><![CDATA[musiki]]></category>
		<category><![CDATA[sarki sozu]]></category>
		<category><![CDATA[şentürk]]></category>
		<category><![CDATA[sevdiğim müzikler]]></category>

		<guid isPermaLink="false">http://www.savasyasar.com/gunluk3/?p=351</guid>
		<description><![CDATA[Sevmek günahsa eğer günahın benim olsun..]]></description>
			<content:encoded><![CDATA[<p>Melodisi hoşuma giden şarkıları hangi türde olursa olsun dinliyorum. Bu bir suçsa eğer kabul ediyorum <img src='http://www.savasyasar.com/gunluk3/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<blockquote><p>sevmek günahsa eğer günahın benim olsun<br />
diliyorum tanrı&#8217;dan mezarın gönlüm olsun</p>
<p>herşeyimi adarım sevgilim senin için<br />
ben kendimi adarım sevgilim senin için<br />
ölmeye de razıyım sevgilim senin için<br />
ben herşeye razıyım sevgilim senin için</p>
<p>başkasını seversen günahım senin olsun<br />
kim ihanet ederse dilerim beter olsun</p></blockquote>
<p><strong>Kader&#8217;in sesinden:</strong><br />
<p><a href="http://www.savasyasar.com/gunluk3/2009/12/kader-cetinturk-sevmek-gunahsa-eger/"><em>Click here to view the embedded video.</em></a></p></p>
<p><strong>Zerrin Özer&#8217;den:</strong><br />
<p><a href="http://www.savasyasar.com/gunluk3/2009/12/kader-cetinturk-sevmek-gunahsa-eger/"><em>Click here to view the embedded video.</em></a></p></p>
<p><strong>Kader &#8211; İğde Ağaçları:<br />
</strong><p><a href="http://www.savasyasar.com/gunluk3/2009/12/kader-cetinturk-sevmek-gunahsa-eger/"><em>Click here to view the embedded video.</em></a></p></p>
<blockquote><p>Igde agaclarinin<br />
Kokusunu unutmadim ki<br />
Unutmadim saclarindan önce<br />
Yüregimi islatan yagmuru<br />
Sen elimden tutunca<br />
Firtinalar durulurdu</p>
<p>Ben seni bir anlik degil<br />
Ben seni bir günlük degil<br />
Ben seni bir ömür boyu<br />
Sevdim Gülüm sevdim<br />
Her zaman sevdim</p>
<p>Gözlerin elmas<br />
Gibi isledi yüregime<br />
Simdi sen yoksun diye Eyvahh ahh..<br />
Yitirdim inan benligimi<br />
Sen bana dokununca<br />
Elim ayagim titrerdi</p>
<p>Ben seni bir anlik degil<br />
Ben seni bir günlük degil<br />
Ben seni bir ömür boyu<br />
Sevdim Gülüm sevdim<br />
Her zaman sevdim</p></blockquote>
<p><strong> Kader &#8211; Döncem ben sana</strong></p>
<p><p><a href="http://www.savasyasar.com/gunluk3/2009/12/kader-cetinturk-sevmek-gunahsa-eger/"><em>Click here to view the embedded video.</em></a></p><strong> </strong></p>
<blockquote><p>Kuş olup uçupta gelicem<br />
Engelleri aşıpta gelicem<br />
Hasretinden taşıpta gelicem<br />
Bir gece vakti döncem ben sana</p>
<p>Bekle gelicem ben sana<br />
Bekle döncem ben sana<br />
Bekle pes etme sakın<br />
Elbet bir gün döncem ben sana</p>
<p>Cana canı katıpta gelicem<br />
Acıları satıpta gelicem<br />
Aşkımı kapıpta gelicem<br />
Bir gece vakti döncem ben sana</p>
<p>Bekle gelicem ben sana<br />
Bekle döncem ben sana<br />
Bekle pes etme sakın<br />
Elbet bir gün döncem ben sana</p></blockquote>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/savasyasar?a=0GX6AD6e6Do:TorB6ZMMEaI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/savasyasar?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/savasyasar?a=0GX6AD6e6Do:TorB6ZMMEaI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/savasyasar?i=0GX6AD6e6Do:TorB6ZMMEaI:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/savasyasar/~4/0GX6AD6e6Do" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.savasyasar.com/gunluk3/2009/12/kader-cetinturk-sevmek-gunahsa-eger/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.savasyasar.com/gunluk3/2009/12/kader-cetinturk-sevmek-gunahsa-eger/</feedburner:origLink></item>
		<item>
		<title>Sql fonksiyonlar ile e-mail doğrulama</title>
		<link>http://feedproxy.google.com/~r/savasyasar/~3/Oy7qC_ghF-A/</link>
		<comments>http://www.savasyasar.com/gunluk3/2009/12/sql-fonksiyonlar-ile-e-mail-dogrulama/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 01:43:05 +0000</pubDate>
		<dc:creator>Savaş Yaşar</dc:creator>
				<category><![CDATA[Bilgisayar]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Seçmece]]></category>
		<category><![CDATA[kullanıcı tanımlı fonksiyonlar]]></category>
		<category><![CDATA[regular expression]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[sql 2000]]></category>
		<category><![CDATA[sql functions]]></category>

		<guid isPermaLink="false">http://www.savasyasar.com/gunluk3/2009/12/sql-fonksiyonlar-ile-e-mail-dogrulama/</guid>
		<description><![CDATA[Çoğu veritabanı yönetim sistemi fonksiyon kullanma olanağını sunar. Fonksiyonların saklı yordamlardan farkı bir toplu işlem ihtiva etmemeleridir. Onların ana maksadı başka yerlerde kullanılmak üzere değer döndürmektir. Aşağıdaki örnekte Ms Sql 2000’de formata uygun girilmemiş, veri girişi sırasında format kontrolü yapılmamış email adreslerini tespit etmeye yönelik kullanıcı tanımlı sql fonksiyonunun kullanımı esas alınmıştır.
Email adresi doğrulamalarında regular [...]]]></description>
			<content:encoded><![CDATA[<p>Çoğu veritabanı yönetim sistemi fonksiyon kullanma olanağını sunar. Fonksiyonların saklı yordamlardan farkı bir toplu işlem ihtiva etmemeleridir. Onların ana maksadı başka yerlerde kullanılmak üzere değer döndürmektir. Aşağıdaki örnekte Ms Sql 2000’de formata uygun girilmemiş, veri girişi sırasında format kontrolü yapılmamış email adreslerini tespit etmeye yönelik kullanıcı tanımlı sql fonksiyonunun kullanımı esas alınmıştır.</p>
<p>Email adresi doğrulamalarında regular expression denilen ifadeler kullanılır. Regular expression demek e-mail adresinin maketi ya da formatı demektir. Sql 2000 regular expression desteği vermediğinden vbscript desteğinden faydalanacağız.</p>
<p><span id="more-350"></span></p>
<p>Regular expression kontrolü ile ilgili ana fonksiyonumuz:</p>
<blockquote>
<p>CREATE FUNCTION dbo.find_regular_expression<br />
(<br />
@source varchar(5000),<br />
@regexp varchar(1000),<br />
@ignorecase bit = 0<br />
)<br />
RETURNS bit<br />
AS<br />
BEGIN<br />
DECLARE @hr integer<br />
DECLARE @objRegExp integer<br />
DECLARE @objMatches integer<br />
DECLARE @objMatch integer<br />
DECLARE @count integer<br />
DECLARE @results bit<br />
EXEC @hr = sp_OACreate &#8216;VBScript.RegExp&#8217;, @objRegExp OUTPUT<br />
IF @hr &lt;&gt; 0 BEGIN<br />
SET @results = 0<br />
RETURN @results<br />
END<br />
EXEC @hr = sp_OASetProperty @objRegExp, &#8216;Pattern&#8217;, @regexp<br />
IF @hr &lt;&gt; 0 BEGIN<br />
SET @results = 0<br />
RETURN @results<br />
END<br />
EXEC @hr = sp_OASetProperty @objRegExp, &#8216;Global&#8217;, false<br />
IF @hr &lt;&gt; 0 BEGIN<br />
SET @results = 0<br />
RETURN @results<br />
END<br />
EXEC @hr = sp_OASetProperty @objRegExp, &#8216;IgnoreCase&#8217;, @ignorecase<br />
IF @hr &lt;&gt; 0 BEGIN<br />
SET @results = 0<br />
RETURN @results<br />
END<br />
EXEC @hr = sp_OAMethod @objRegExp, &#8216;Test&#8217;, @results OUTPUT, @source<br />
IF @hr &lt;&gt; 0 BEGIN<br />
SET @results = 0<br />
RETURN @results<br />
END<br />
EXEC @hr = sp_OADestroy @objRegExp<br />
IF @hr &lt;&gt; 0 BEGIN<br />
SET @results = 0<br />
RETURN @results<br />
END<br />
RETURN @results<br />
END</p></blockquote>
<p>Bu fonksiyon kontrolde kullanacağımız regular expression’ı, regular expression uyumunun arandığı metni girdi olarak kabul etmekte ve metin regular expression yapısında ise 1 döndürmektedir.</p>
<blockquote><p>CREATE FUNCTION dbo.udf_ValidEmail  &#8211;email format uyumunu kontrol eden fonksiyon<br />
(<br />
&#8211; Add the parameters for the function here<br />
@email nvarchar(50) –50 karakter uzunluğunda email kontrol edilebilir<br />
)<br />
returns bit<br />
AS<br />
BEGIN<br />
declare @validEmail bit<br />
&#8211; Declare the return variable here<br />
DECLARE @regularexpression nvarchar(250);<br />
set @regularexpression = &#8216;^(([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5}){1,25})+([;.](([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5}){1,25})+)*$&#8217;</p>
<p>&#8211; Add the T-SQL statements to compute the return value here<br />
set @validEmail = dbo.find_regular_expression(@email,@regularexpression,0)</p>
<p>&#8211; Return the result of the function<br />
return @validEmail</p>
<p>END<br />
GO</p>
<p>select dbo.udf_ValidEmail(<a href="mailto:'ahmet@yahoog.com.tr'">&#8216;ahmet@yahoog.com.tr&#8217;</a>)</p></blockquote>
<p><span style="background-color: #eeeeee;"> </span></p>
<p><span style="background-color: #eeeeee;">Sql’in kullanıcıya sağladığı fonksiyon tanımlama olanağı sayesinde sistem fonksiyonlarda yer almayan ve sık kullandığımız fonksiyonları yazma olanağına sahibiz.</span></p>
<p><span style="background-color: #eeeeee;">Mesela;</span></p>
<ul>
<li><span style="background-color: #eeeeee;">Girilen metni belirtilen karaktere göre split eden fonksiyon yazılabilir. </span></li>
<li><span style="background-color: #eeeeee;">Sorgu sonucundaki parasal değeri Türk formatında (x.xxx.xx tl) şeklinde formatlayarak gösterecek fonksiyon yazılabilir</span></li>
<li><span style="background-color: #eeeeee;">Kg değerini 1000’e bölerek tona çevirecek fonksiyon yazılabilir.</span></li>
<li><span style="background-color: #eeeeee;">vb, vb..</span></li>
</ul>
<p><span style="background-color: #eeeeee;">Kaynaklar:</span></p>
<ul>
<li><a title="http://www.sqlteam.com/article/regular-expressions-in-t-sql" href="http://www.sqlteam.com/article/regular-expressions-in-t-sql" target="_blank">http://www.sqlteam.com/article/regular-expressions-in-t-sql</a></li>
<li><a title="http://regexlib.com/DisplayPatterns.aspx" href="http://regexlib.com/DisplayPatterns.aspx" target="_blank">http://regexlib.com/DisplayPatterns.aspx</a></li>
</ul>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/savasyasar?a=Oy7qC_ghF-A:rLL5FH3f81k:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/savasyasar?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/savasyasar?a=Oy7qC_ghF-A:rLL5FH3f81k:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/savasyasar?i=Oy7qC_ghF-A:rLL5FH3f81k:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/savasyasar/~4/Oy7qC_ghF-A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.savasyasar.com/gunluk3/2009/12/sql-fonksiyonlar-ile-e-mail-dogrulama/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.savasyasar.com/gunluk3/2009/12/sql-fonksiyonlar-ile-e-mail-dogrulama/</feedburner:origLink></item>
		<item>
		<title>Sql stored procedure – saklı yordamlar</title>
		<link>http://feedproxy.google.com/~r/savasyasar/~3/2e6eTJJ4O_w/</link>
		<comments>http://www.savasyasar.com/gunluk3/2009/12/sql-stored-procedure-sakli-yordamlar/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 00:50:00 +0000</pubDate>
		<dc:creator>Savaş Yaşar</dc:creator>
				<category><![CDATA[Bilgisayar]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Seçmece]]></category>
		<category><![CDATA[dbms]]></category>
		<category><![CDATA[mcdba]]></category>
		<category><![CDATA[mssql]]></category>
		<category><![CDATA[saklı yordam]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[stored procedure]]></category>

		<guid isPermaLink="false">http://www.savasyasar.com/gunluk3/2009/12/sql-stored-procedure-sakli-yordamlar/</guid>
		<description><![CDATA[Sql saklı yordamlar konusunda giriş yazısı]]></description>
			<content:encoded><![CDATA[<p>Stored procedure nedir, hangi ihtiyaçten doğmuştur, bize ne gibi faydaları vardır sorularına öznel cevaplarımı görüşlerinize sunuyorum.</p>
<ul>
<li><strong>Stored procedure nedir?</strong><br />
Veritabanı yönetim sistemlerinin veritabanı kullanıcılarına sunduğu bir kolaylıktır. Aynı sql cümlelerini değişik değişik yerlerde tekrar tekrar kullanıyorsak ve bu durum bezdiriyorsa saklı yordamlar ilaç gibi gelen çözümlerden biridir. Bir işi tanımlayan insert, update, delete, select vb cümleciklerinden oluşan sql cümleciklerini bir saklı yordamda toplayarak hem zamandan kazanmış hem de modülerliği elde etmiş oluruz. Birden fazla sql cümlesinden oluşan saklı yordamımızı ihtiyaç duduğumuz yerlerde exec komutu ile çağırabilir ve çalıştırabiliriz. Örnek çalıştırma şekli:<br />
<em>exec ksy_CokSatilanveStoktaAzKalmisUrunleriGetir</em><br />
örnek çağırmasında “ksy_CokSatilanveStoktaAzKalmisUrunleriGetir” saklı yordamımızın adıdır. ksy “Kullanıcı Saklı Yordamı” manasında kısaltılmıştır, herkes kendisine uygun kısaltmayı seçmekte özgürdür. Ancak dokümante etmesi kaydıyla.</li>
</ul>
<p><span id="more-348"></span></p>
<ul>
<li><strong>Ne işe yarar?</strong><br />
- Tekrar tekrar yazılan sql cümle gruplarını tekrar tekrar yazmaktan kurtarır.<br />
- İşlemin gerçekleştiği sürenin kısalmasını sağlar, yani performans kazandırır.<br />
- Program kodlarının okunurluğunu arttırır. Öyle ki tabloya veri girişi ile ilgili gerçekleşen bir değişiklikte uygulama programının kodunun güncellenmesi gerekmez, sadece o işi yapan saklı yordamın güncellenmesi yetebilir.<br />
- Veritabanına izinsiz kod gönderimine izin veren güvenli kod yazım tekniklerine uyulmamış şekilde yazılan programların açıklarını bir nebze kapatabilir.</li>
<li><strong>Saklı Yordamları kullanabilmemiz için neye ihtiyacımız var?</strong><br />
- Veritabanı<br />
- Veritabanı yönetim sistemi -  xml, txt, xls vb veri saklama yöntemlerinde saklı yordam kullanmanın mümkün olmadığını söylemeye gerek yok sanırım.<br />
- Veritabanına komut gönderebilmemizi sağlayan bir arayüz</li>
<li><strong>Örnek kullanım: market ürün satış işlemi</strong><br />
- Herhangi bir ürün satıldığında sadece bir tabloya veri girmekle işlem bitmez genellikle.<br />
Arka planda şunlar olabilir.<br />
- Satılan ürünle ilgili siparişler tablosuna kayıt gir<br />
- Satılan ürünle ilgili stok tablosundan satılan ürün adedini düş<br />
- Satılan ürünü kim sattıysa o satıcının sattığı ürün sayısını bir arttır<br />
- Satılan üründen stokta 10’dan az kaldıysa başka bir işlemi tetikle vb..</li>
<li><strong>Nerde saklı yordam nerde view (görünüm) kullanacağımı nereden bileceğim?</strong><br />
Saklı yordam “şu kriterleri sağlayanları getirden” ziyade “şu işlemleri yap” şeklinde bir komut olarak algılanabilir. Bir select ile yapılabilecek işlemler için görünüm kullanılır.<br />
- Örnek saklı yordam: şu koşulları sağlayan kayıtları al, şu işlemden geçir. Çıktı etkilenen kayıt sayısı<br />
- Örnek görüntü: şu koşulları sağlayan kayıtların, şu özelliklerini getir. Çıktı koşulları sağlayan kayıt sayısı</li>
<li><strong>Stored procedure oluşturma cümlelerin yapısı</strong><br />
<em>create procedure benimprosedur<br />
&lt;yordamda islem gorecek girdiler<br />
as<br />
&lt;yordamda yapilacak islemi gosteren sql cümleleri&gt;</em>Örnek:<br />
<em>create procedure rentacar<br />
kiralananaraba kod,<br />
kiralayanmusterikimlikno kod<br />
as<br />
kiralananaraba kodundaki arabayi musteri kodu ile birlikte kiralananlar tablosuna ekle<br />
arabalar tablosunda verilen koddaki arabanin durumunu kiralandi olarak isaretle</em></li>
</ul>
<p>Şimdilik bu kadar..</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/savasyasar?a=2e6eTJJ4O_w:5JBJmbZ0ZvU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/savasyasar?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/savasyasar?a=2e6eTJJ4O_w:5JBJmbZ0ZvU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/savasyasar?i=2e6eTJJ4O_w:5JBJmbZ0ZvU:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/savasyasar/~4/2e6eTJJ4O_w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.savasyasar.com/gunluk3/2009/12/sql-stored-procedure-sakli-yordamlar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.savasyasar.com/gunluk3/2009/12/sql-stored-procedure-sakli-yordamlar/</feedburner:origLink></item>
		<item>
		<title>Kurban bayramınız mübarek olsun.</title>
		<link>http://feedproxy.google.com/~r/savasyasar/~3/qOvBe3rPJoo/</link>
		<comments>http://www.savasyasar.com/gunluk3/2009/11/kurban-bayraminiz-mbarek-olsun/#comments</comments>
		<pubDate>Fri, 27 Nov 2009 22:07:32 +0000</pubDate>
		<dc:creator>Savaş Yaşar</dc:creator>
				<category><![CDATA[Genel]]></category>
		<category><![CDATA[kurban bayramı]]></category>
		<category><![CDATA[kutlama]]></category>

		<guid isPermaLink="false">http://www.savasyasar.com/gunluk3/2009/11/kurban-bayraminiz-mbarek-olsun/</guid>
		<description><![CDATA[Tanıyan, tanımayan bütün arkadaşlarımın, dostlarımın bayramını kutluyorum. Herkese güzellik birlik, beraberlik dolu, her zaman bir öncekinden daha güzel ve mutlu bir bayram diliyorum.
]]></description>
			<content:encoded><![CDATA[<p>Tanıyan, tanımayan bütün arkadaşlarımın, dostlarımın bayramını kutluyorum. Herkese güzellik birlik, beraberlik dolu, her zaman bir öncekinden daha güzel ve mutlu bir bayram diliyorum.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/savasyasar?a=qOvBe3rPJoo:WrMTxRguZhY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/savasyasar?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/savasyasar?a=qOvBe3rPJoo:WrMTxRguZhY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/savasyasar?i=qOvBe3rPJoo:WrMTxRguZhY:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/savasyasar/~4/qOvBe3rPJoo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.savasyasar.com/gunluk3/2009/11/kurban-bayraminiz-mbarek-olsun/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.savasyasar.com/gunluk3/2009/11/kurban-bayraminiz-mbarek-olsun/</feedburner:origLink></item>
		<item>
		<title>MS-PL Açık Kaynak Türk yapımı blog sistemi “blogsa”</title>
		<link>http://feedproxy.google.com/~r/savasyasar/~3/rubBbMWIxHc/</link>
		<comments>http://www.savasyasar.com/gunluk3/2009/11/ms-pl-aik-kaynak-trk-yapimi-blog-sistemi-blogsa/#comments</comments>
		<pubDate>Sun, 22 Nov 2009 18:24:14 +0000</pubDate>
		<dc:creator>Savaş Yaşar</dc:creator>
				<category><![CDATA[Bilgisayar]]></category>
		<category><![CDATA[Web Tasarım & Programlama]]></category>
		<category><![CDATA[blog sistemleri]]></category>
		<category><![CDATA[visual c##]]></category>
		<category><![CDATA[web programlama]]></category>
		<category><![CDATA[web tasarım]]></category>

		<guid isPermaLink="false">http://www.savasyasar.com/gunluk3/2009/11/ms-pl-aik-kaynak-trk-yapimi-blog-sistemi-blogsa/</guid>
		<description><![CDATA[Blog betiği denilince ilk aklıma gelen blog betikleri:

Wordpress (PHP, MySql) 
Blogengine (.Net, Ms Sql, Access) 

dir. Bu betiklerin geliştirici ekibinde Türk var mı yok mu bilmiyorum. Ama artık bizim tarafımızdan geliştirilen bir blog sistemi mevcut. .Net ve MsSql/Access üzerine geliştirilen blogsa scriptinin 1.1 versiyonu yakında yayınlanacak. http://www.blogsa.net adresinden ulaşabileceğiniz bu blog sistemini test etmek ve [...]]]></description>
			<content:encoded><![CDATA[<p>Blog betiği denilince ilk aklıma gelen blog betikleri:</p>
<ul>
<li>Wordpress (PHP, MySql) </li>
<li>Blogengine (.Net, Ms Sql, Access) </li>
</ul>
<p>dir. Bu betiklerin geliştirici ekibinde Türk var mı yok mu bilmiyorum. Ama artık bizim tarafımızdan geliştirilen bir blog sistemi mevcut. .Net ve MsSql/Access üzerine geliştirilen blogsa scriptinin 1.1 versiyonu yakında yayınlanacak. <a href="http://www.blogsa.net">http://www.blogsa.net</a> adresinden ulaşabileceğiniz bu blog sistemini test etmek ve katkıda bulunmak bir şeyler üreten arkadaşlarımızı desteklemek adına yapabileceğimiz ve yapmamız gereken bir şey. Scriptin özellikleri normal bir blog yazarının bütün ihtiyaçlarını karşılar gibi görünüyor.</p>
<p>&#160;</p>
<p>Şimdilik görsellik adına bazı şeyler eksik gibi. Sistem için bir logo, güzel ve sade bir tema olsa daha güzel olurdu. Ama önce işlev, sonra görsellik yaklaşımı da şikayet edilecek bir yol değil.</p>
<p>&#160;</p>
<p>Test etmek ve incelemek için geliştirici ekibin sitesini <a href="http://www.blogsa.net">ziyaret edebilirsiniz.</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/savasyasar?a=rubBbMWIxHc:p4J0yVDsCzc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/savasyasar?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/savasyasar?a=rubBbMWIxHc:p4J0yVDsCzc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/savasyasar?i=rubBbMWIxHc:p4J0yVDsCzc:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/savasyasar/~4/rubBbMWIxHc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.savasyasar.com/gunluk3/2009/11/ms-pl-aik-kaynak-trk-yapimi-blog-sistemi-blogsa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.savasyasar.com/gunluk3/2009/11/ms-pl-aik-kaynak-trk-yapimi-blog-sistemi-blogsa/</feedburner:origLink></item>
	</channel>
</rss>
