22 Ocak 2009 Perşembe

CrmAsyncService.exe CPU'yu Çok Kullanıyor

Microsoft Dynamics CRM yazlılımda eğer CrmAsyncService.exe uygulaması kaynaklarınızın büyük bçlümünü tüketiyorsa ve sisteminizi ciddi şekilde yavaşlatıyorsa sebebi büyük ihtimalle arka planda tamamlanmamaış çok fazla workflow çalışmasıdır. Bunları engellemek için yapmanız gereken ise CRM ekranında settings -> system Jobs yolunu kullanarak işletilmekte olan workflowlwrı seçmek ve daha sonra bu workflowları menüden cancel komutunu vermektir. Umarım işinize yarar..

9 Ocak 2009 Cuma

LINQ dropdownlist bağlamak

okulDataContext okul = new okulDataContext();
ogrenciler ogrs = new ogrenciler();
var ogrenci = from ogr in okul.ogrencilers
where ogr.ad == "Erman"
select new { ogr.ad, ogr.soyad };

ddl1.DataValueField = "ad";
ddl1.DataTextField = "soyad";
ddl1.DataSource = ogrenci.ToList();
ddl1.DataBind();

8 Ocak 2009 Perşembe

The instance name must be the same as computer name CRM

Eğer CRM 4.0 kurulum ekranında böyle bir hata alıyorsanız mevcut sebeplerden biri bilgisayar adının değişmiş olmasıdır.
Sorunu gidermek için aşağıdaki adımları izleyebilirsiniz.
SQL SERVER'da Master veritabanında şu komutları çalıştırın
sp_dropserver
sp_addserver 'yani_bilgisayar_adı','local
SQL Server servisini durudurn. (Bilgisayarıma sağ tıklayıp Yönet Deyip Buradan Servisleri seçebilirsiniz.)
Aşağıdaki kayıt defteri ayarlarını yeni bilgisayar adınuıza göre değiştirin
klm\software\microsoft\microsoft sql server\
hklm\system\mssql$
SQL Server'i yemiden başlatın..

TSQL Bir Kolon'un Hangi Tabloya Ait Olduğunu Bulma

Aşğıdaki kod parçasını kullanabilirsiniz.

Bu Sorguyu master DB'si üzerinde çalıştırmanız gereklidir.
select sysobjects.name
from syscolumns
left join sysobjects on sysobjects.id = syscolumns.id
where syscolumns.name like 'Bulmakİstediğiniz Kolon'
order by 1

25 Aralık 2008 Perşembe

Dataset Bilgisini xml Dosyasına Yazdırma

Bazen debug yapamama yada başka birine göndermek için gibi sebeplerden dolsyı bir datset içindeki verinin XML dosyasına katarılması gerekir. Bunun için aşağıdaki kod parçasını kullanabilirsiniz.
dsAccount.WriteXml(@"C:\Dosya_Adi.xml");
dsAccount dataset'in adıdır. Eğer bunu bir asp.net uygulamasında yapıyorsanız dosyanın yazılacağı dizine (Örnekte c: dizini) Network Serivce kullanıcısına yazma hakkı vermelisiniz. Bunun için sürücüye sağ tıklayarak açılan menüden güvenlik yada security and permisions alanından Security sekmesine gelip buradan kullanıcıyı etklemeniz gerekir.

16 Aralık 2008 Salı

case when yapısında null değeri kullanmak

SQL Server'da select içinde if benzeri bir yapı kullanmak istiyorsak case when yapısı yardımımıza koşar mesela aşağıdaki ifadeye bakın.
select
case yas
when 5 then 'yas 5'
when 6 then 'yas 6'
else '5 yada 6 Değil'
end yeniyas

Bu durumda yas kolonun değerine göre yeniyas isimli yeni bir kolona değerler verilir. Böyle bir ifadede null değerlerini kontrol etmek istediğinizde şöyle yazarsanız istediğiniz sonucu alamazsınız:
case yas
when null then "değer yok"
else 'değer var'
end yeniyas

Bu durumda kullanmanız gereken yapı şu şekilde olmalıdır.
case
when yas is null then 'değer yok'
else 'değer var'
end yeniyas

21 Haziran 2008 Cumartesi

RSS Okuyucu

Aslında bir rss okuyucu yapmak çok basittir. Sizinle kurstan hocamın (Bora BEKEN) yapmış olduğu bir rss okuyucuyu paylaşmak istiyorum. http://rapidshare.com/files/124126586/RssReader.zip.html adresinden kaynak kodunu indirebilirsiniz. rss linkini verdiğinizde genelde http://rss şeklinde başlar bütün bilgileri alıp size getirmekte. Örnek bir resmini aşağıda görebilirsniz.

Dundas Chart ve Stored Procedure

Dundas Chart yazılımı ayrıntılarını dundas.com sitesinden görebileceğiniz .net platformu için geliştirilmiş gelişmiş bir grafik çizdirme (ingilizcesi chart)eklentisi. Burada özelliklerini uzun uzun anlatmayacağım. Sadece özet olarak bu grafikleri kullanmak istiyorsanız programını indirip kurmanız gerekiyor. asp.net ve windows uygulamaları olmak üzere 2 tipi ve farklı versiyonları var. Bunun yanında gene grafik çizdirme üzerine farklı araçları da mevcut. Gene ayrıntılı bilgiyi web sitesinden öğrenebilirsiniz. Bu örnekte bir stored procedure'ü nasıl grafikle çizdiriceğimizi söyleyeceğiz.
Programı yükledikten sonra yeni bir visual studio açın ve yeni bir web sitesi olşturun. Toolbox'dan dundaschart öğesini sürükleyip bırakın. Öğe, toolbox'da dundas sekmesi altında durmakta. Eğer göremiyorsanız visualstudio'yu baştan başlatın. gene gözükmüyorsa toolbox üzerinde sağ tıklayarak choose items... deyin ve dundas chart ile başlayan öğeleri seçip projenize dahil edin.
Daha fazla ileri gtimeden sqlserver'ı açıp örnek bir tablo oluşturalım ve örnek stored procedure'u yazalım. Tablomuz oldukça basit olacak tarih ve satislari gösterecek yapısı ve içine örnek olarak koyduğum data şöyle:



Şimdi ise bir stored procedure oluşturalım. Stored procedure 2 tarih parametresi alacak ve bu tarihler arasındaki satisları listeleyecek.
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE grafik_getir
@date1 datetime, @date2 datetime
as
BEGIN
select zamanlar,satislar from dundastablo where zamanlar between @date1 and @date2
END
GO

şimdi visual studio projemize geri dönün. ve bir düğme ekleyin. Proje içine aşağıdaki kodları yapıştırın.
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using Dundas.Charting.WebControl;

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}
protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection connection = new SqlConnection("Data Source=ERMANPC;Initial Catalog=batur;Integrated Security=True");
SqlCommand command = new SqlCommand();
command.Connection = connection;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "dbo.[grafik_getir]";

SqlParameter date1 = new SqlParameter("@date1", SqlDbType.DateTime);
SqlParameter date2 = new SqlParameter("@date2", SqlDbType.DateTime);

command.Parameters.Add(date1);
command.Parameters.Add(date2);

command.Parameters["@date1"].Value = Convert.ToDateTime("01.01.2008");

command.Parameters["@date2"].Value = Convert.ToDateTime("02.01.2008");

command.Connection.Open();

SqlDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection);

Chart1.DataSource = reader;

Chart1.Series[0].ValueMemberX = "satislar";
Chart1.Series[0].ValueMembersY = "zamanlar";
Chart1.DataBind();
}
}

Programı çalıştırıp düğmeye tıkladığınızda grafiğin geldiğini göreceksiniz.


18 Haziran 2008 Çarşamba

Google'ın Güzel özellikleri

Merhaba, sık sık kullandığımız google arama motorunun çok yararlı 3 özelliğinden bahsetmek istiyorum. ilk özelliği hesap makinası özelliği google arama satırına herhangi bir matematiksel ifade yazıp arama tuşuna tıkladığınızda sonucunu görebilirsiniz. Mesela sqrt(20+5) yazıp enter'a bastığınızda 20+5=25 25'in karekökü 5'i bulabilirsiniz. daha ayrıntılı bilgi için http://www.google.com.tr/intl/tr/help/calculator.html adresine bakabilirsiniz. isterseniz Bu özellikle para birimleri yada ölçü birimleri arasında dönüşüm de yapabilirsiniz.
Diğer bir özellik ise aradığınız kelime yada kelimelerin sadece belli bir site içinde aramanmasını sağlamak. bunun için aratmak istediğiniz kelimeden sonra site: yazıp web sitesinin adını yazmanız yeterli. araba site:www.ekolay.net şeklinde bir arama yaparsanız, araba kelimesini www.ekolay.net sitesi içinde aramış olursunuz.
Son bahsetmek istediğim özellik ise define: özelliği. Bu özelliği bir sözlük gibi düşünebilirsiniz. mesela define: summer yazdığınızda yaz kelimesi ile ilgili açıklamalara erişebilirsiniz.

15 Haziran 2008 Pazar

Asp.net Yeni Sayfa Açtırmak (c#)

Visual studio ortamında aspx sayfalarında bir diüğmeye tıkladındığında veya bir olay sonucunda popup pencere şeklinde yeni bir sayfa açmak istiyorsanız şu kodu kullanabilirsiniz:
string Clientscript = "window.open(\"Default2.aspx\")";
Button1.Attributes.Add("Onclick",Clientscript);
c# dilini kullandığımızı varsayıyorum. Aslında dikkat edilirse kod bir javascript kodunu çalıştırıp bunu düğmeye atamakta.

Web sitenize google site içi arama motornuzu eklemek

Bazi web sitelerinde gördüğümüz google'ın site içinde arama özelliğini web sitenize eklemek altında çok kolay http://www.google.com/coop/cse/ sitesini ziyaret edip buradan Özel Arama Motoru Oluştur linkini kullanarak oluşturabilirsiniz. işlemlerini takip ettiğinizde size gerekli html kodunu verecektir. Bunu sayfanıza yapıştırmanız yeterli. Eğer google hesabınız yoksa bir hesap almanız gerekebilir.

14 Haziran 2008 Cumartesi

Aspx Sayfalarına Flash Eklemek

Visual studio ortamını kullanarak aspx sayfalarına flash animasyonları eklemek istiyorsanız. farklı yöntemler mevcut. Ama ne yazık ki microsoft bunun için basit bir yol yada toolbox'dan sürükleyip bırakacağmız bir nesne geliştirmemiş. Bir yol projeyi dreamwever içinde açarak eklemeyi orada yapmak. dreamweaver gerekli kodlamaları sayfaya ekleyecektir. Ama bu yolu kullanmak istemiyorum visual studio arayüzünden ekleme yapmak istiyorum derseniz, o zaman bir javascrip kod ile bunu yapabilirsiniz.
Bunun için http://swfobject.googlecode.com/files/swfobject_2_0.zip sitesinden zip dosyasını indirin ve açın. İçindeki swfobject.js dosyasını projenize ekleyin add--> exsisting items yolunu kullanabilirsiniz. Aslında dosyanın içine bakarsanız tek satırlık bir javascript kodu var o kadar. Artık aşağıdaki kodu yazarak swf dosyasını sayfanızda gösterebilirsiniz. Örnek kullanımın nasıl yapıldığını ise http://code.google.com/p/swfobject/wiki/documentation adresinden görebilirsiniz.
Oldukça basit. sadece birkaç dakika ayırarak swf flash dosyalarınızı aspx sayfalarınıza taşıyabilirsiniz. Böylece eğer embed is not supported gibi hataların da önüne geçebilirsiniz.
Eğer gene hatalar gözlemliyorsanız. kodu div tagleri altında koyduğunuzu kontrol edin ve div taglerine elle genişlik ve yükseklik verin.
Son olarak başka bir yöntemden bahsetmek istiyorum. Aslında Bu görünüşe göre en basit yöntem derlediğiniz zaman sayfada hata olduğunu söylüyor ama genede çalışıyor. Aşağıdaki kod bloğunu kullanın.

11 Mayıs 2008 Pazar

MATLAB komutlarını c# 'da kullanma

C#’da MATLAB komutlarını kullanma
MATLAB, mühendislik, matematik ve finans gibi alanlarda kullanılan gelişmiş bir yazılım. Bu programı daha önce kullanmışsanız yetenekleri hakkında bir fikir sahibisinizdir. Web sitesi www.mathworks.com ‘dur. Bu konuda 3 tane adım adım halinde anlatan yazı yazdım. İlk yazı, bir matlab m fonksiyonunu kullanarak c# içinden çağırarak kullanmak. İkincisi değer döndüren bir matlab fonksiyonunu kullanarak c# içine bu değerleri almak daha sonra yeniden başka bir m fonksiyonuna göndermek. (Bu konu mwarray sınıfı üzerine yoğunlaşarak anlatmaktadır). Son konu ise oluşturduğunuz c# programlarını başka bilgisayarlarda kullanabilmeniz için gereken package işlemlerini anlatmakta. Zira c# içinde kullandığınız matlab komutları sadece geliştirme yaptığınız bilgisayarda çalışabilmekte. Diğer bilgisayarlarda kullanbilmek için matlab fonksiyonlarını package dosyası haline getirip c# projeniz ile birlikte dağıtmanız gerekir.

Adım adım matlab komutlarını c# da kullanma(c# matlab entegrasyon u)
Matlab’ın fonksiyonlarını matlab dışında da kullanmak matlab builder ile mümkün. Matlab builder , matlab ile birlikte gelen bir araç. Matlab’ın m fonksiyonlarını diğer programlama dillerinde kullanabilmenizi sağlıyor. Hatta bu programı kullanarak exc ell add-inn’leri hazırlayarak matlab fonksiyonlarını Excel içinden dahi kullanabilirsiniz. Builder’ın bir başka özelliği ise oluşturduğunuz programları package’layarak başka bilgisayarlarda telif sorunu olmadan kullanabilmeniz. Düşünsenize MAtlab dahi yüklü olmayan bir bilgisyarda bütün matlab fonksiyonlarını kullanabilirsiniz.
İşte şimdi adım adım bir örnek yapalım hem de grafik çizdiren bir örnek.
1. C:\ dizini içine matlabc isimli bir klasör açın.
2. Şimdi Matlab programını açın. Matlab’ı c:\matlabc klasörünü gösterecek şekilde ayarlayın.

3. Yeni bir m file dosyası açın. İçine

function ciz()
x = -pi:.1:pi;
y = sin(x);
plot(x,y)

yazın ve ciz.m ismiyle kaydedin. Fonksiyonu matlab ekranında deneyebilirsiniz komut satırına ciz yazın. Bir sinüs grafiğinin çizildiğini göreceksiniz.

4. Bu ciz.m dosyasını şimdi bir .net class’ına çeviriceğiz. Bunun için matlab da deploytool yazın. Eğer matlab’ın 6.5 gibi eski bir sürümünü kullanıyorsanız burada comtool yazmanız gerekir. Deploytool aracının görüntüsü şu şekildedir.


5. Eğer daha önce deploytool komutunu kullanmadıysanız, Matlab derleme için kullanacağı derleyiciyi belirlemenizi ister. Bunun için komut satırına mbuild -setup yazmanız gerekir. Matlab bir compiler seçmenizi ister. 1 numaralı lcc derleyicisini seçin ve onaylayarak gidin. Matlab Hata verebilir, endişelenmeyin. Benzer bir hatayla karşılaşmıştım. Bu hatayı dert etmeyin derleme işlemi sırasında prf isimli bir matlab seçenekler dosyasını kullanarak bu sorun giderilecektir. Adımları takip etmeye devam edin.
6. Deployment tool üzerindeki New deployment Project düğmesine tıklayarak aşağıdaki pencereyi görüntüleyin.

7. Pencere bu şekilde olacak şekilde ayarlamaları yapın ve OK düğmesine tıklayın. Böylece deployment projesi oluşturmuş oluyorsunuz. Sıradaki aşama kullanmak istediğiniz .m file’ları proje içine dahil etmek
8. Add File düğmesine tıklayarak ciz.m dosyasını alın. Matlabclass klasörü altına alındığını göreceksiniz. İsterseniz burada 1’den fazla .m dosyasını da projenize alabilirsiniz.
9. Open Project Settings düğmesine tıklayın. Seçenekler penceresi açılacaktır.
10. Açılan pencerede Compiler Options File alanına Browse diyerek matlab.prf dosyasını gösterin. Bu işlemi bir defa yapmanız yeterlidir. Derleme zamanındaki hatanın giderilmesi için kullanılır.

11. OK düğmesine tıklayarak pencereyi kapatın. Build the Project düğmesine tıklayarak projeyi compile edin. (Not: birkaç dakika sürebilir.)
12. Derleme işlemi hatasız biterse C:\matlabc\matlabc\distrib konumuna 2 tane dosya gelecektir. Bunlardan dll dosyası c# projesinde kullanacağınız class dosyası.

13. Visual studio programını açın. Ve bir c# uygulaması oluşturun.(oluşturduğunuz class’ı asp.net sayfalarında da kullanabilirsiniz.)
14. Projenize add referrence diyerek oluşturduğunuz bu dll dosyasını gösterin.


15. Projeye bir düğme ekleyin şu kodu oluşturun.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using matlabc; // ekleyin

namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
// classımızın matcl isimli olarak türetin.
matlabcclass matcl = new matlabcclass();
// ve tabiki m dosyası içindeki ciz fonksiyonunu taşıyın.
matcl.ciz();
}
}
}
16. Projenizi çalıştırın ve düğmeyi tıklayın. Matlab grafiğinin geldiğini göreceksiniz. Etkileyici değil mi?



Ssis Bir Klasördeki excel dosylarını sql server'a atma

SQL SERVER INTEGRATING SERVICES (ssis)BİR KLASÖR İÇİNDEKİ BÜTÜN EXCEL DOSYALARINI TARAYIP VERİTABANINA KAYDETMEK

Merhaba, SSIS ya da uzun deyimiyle Sql Server Integrating Services sqlserver 2005 ile gelmiş bir servistir. Ne işe yarar sorusunun cevabı ise aslında oldukça geniştir. Ama özetle her tip veri kaynağından ki bunlar OLEDB dediğimiz Sqlserver, Access gibi veri tabanı yazılımları olabileceği gibi bir Excel dosyası, düz bir metin dosyası, xml hatta bir web servisi de olabilir, her tip veri kaynağına data aktarabilmemizi sağlar. Hatta bu aktarım sırasında veriler üzerinde de istediğiniz değişiklikleri yapabilirsiniz. Mesela tablonun kolonları üzerinde her türlü işlemleri yapabilir, Stored procedure çağırabilir, dosyalar-klasörler oluşturabilirsiniz. Amacınız farklı kaynaklardaki verilerin entegrasyonu, birleştirilmesi ise ssis servisi sizin için biçilmiş kaftandır. Üstelik bütün bu işlemleri kod dahi yazmadan yapabilirsiniz.

Ssis’in kullanım alanları tabi ki çok geniştir. Ama fikir vermek açısından iş hayatındaki gerek duyulduğu durumlardan birkaç örnek verelim. Bir müşteriniz var verilerini Excel dosyalarında tutuyor. Daha sonra işi büyüyor ve karmaşıklaşıyor. Dolayısıyla Excel artık ona yetmiyor ve sizden işlerini yoluna koyacak bir program istiyor. İşte bu durumda Excel dosyalarını nasıl sisteminize alacaksanız. Belki yıllarca veri var içinde. Başka bir durum daha örneğin merkez bankasının döviz kur değerlerini tarihleriyle birlikte bir veritabanına aktarmak istiyorsunuz. Bu değerler her gün web sitesinden xml dosyası olarak yayınlanıyor olsun. İşte böyle bir durumda da ssis özelliklerini kullanarak istediğiniz kadar tarihe ait veriyi(belki son 10 yıllık) web sitesinde yayınlanan xml’den alıp veritabanınıza alabilirsiniz. Bu örnekleri çoğaltmak mümkün ama sizi daha fazla sıkmadan konuya geçmek istiyorum.

Bir klasörünüz var içinde aynı tip veriler içeren Excel dosyaları var. İşte bir package oluşturup(ssis projelerine package denir.) bu verilerin otomatik okunup bir sqlserver 2005 tablosuna yazdırılmasını istiyoruz. (Önemli Not: ssis servisi sqlserver 2005 ile gelen bir özelliktir. Bu servis daha önceki sql versiyonunda DTS[Data Tronsformation Services]olarak geçmekteydi.) Örneği aşama aşama yapacağız. Böylece anlamak daha kolay olacaktır. Örneğe başlamadan önce ssis servisini kullanmak için sqlserver kurulumuyla birlikte kurulmuş olması gerektiğini hatırlatmak isterim. Eğer kurulu değilse sqlserver 2005 cd’sini kullanarak bu bileşeni ekleyebilirsiniz. Ben örnekte sqlserver’in devoloper edition’ını kullandım.

1. C: dizini içine ssis_excel isimli bir klasör oluşturun.

2. Bu dizin içinde 3 tane Excel dosyası oluşturun. Bu Excel dosyalarını istediğiniz gibi isimlendirebilirsiniz ama içleri ortak yapıda olsun. Örnek bir Excel dosyasına ait resim şöyle olabilir.

3. Excel dosyasında fark ettiğiniz üzere ilk satır sütun adı gibi kullanılmıştır ve bu ad ve soyad yazan hücreler diğer Excellerde de ortaktır.

4. Sıradaki aşama ise sql server içinde Excel verilerini biriktireceğimiz tabloyu oluşturmak. Bunun için sql server’ı çalıştırın ve kullandığınız bir veritabanında isimler adlı resimdeki tabloyu oluşturun.

5. Bu hazırlıkları yaptıktan sonra integrating services uygulamamızı başlatalım bunun için visual studio 2005’i açın File --> New --> Project yolunu kullanarak proje oluşturma sayfasını açın. Buradan Bussiness Intellegence Projects altındaki Integration Services Project seçeneğini seçin. Eğer bu seçenek gözükmüyorsa bilin ki ssis özelliği sql server kurulurken kurulmamıştır. Yoksa uygun sqlserver sürümünü kullanarak bu özelliği de ekleyin. Sqlserver’ın devoloper edition sürümünde ssis servisleri bulunmakta.(Bu makalede kullanılmıyor ama çok yararlı SSAS ve SSRS servislerini de kurabilirsiniz.)

6. İsteğinize göre bir isim verip projeyi açın.

7. Ekranın altında bulunan Connection Managers paneli üzerinde sağ tıklayarak New Connection komutunu verin. Açılan pencereden Excel seçeneğini seçin ve Add…

düğmesine tıklayın.

8. Açılan ekranda Browse düğmesine tıklayarak c:\ssis_excell klasöründeki bir excel dosyasını gösterin. Aslında burada hangi excel dosyasını gösterdiğiniz önemli değildir. Çünkü bunu ssis’in bir değişkenden okumasını isteyeceğiz. Bunu yapmamızın sebebi değişkeni oluşturana kadar ssis’in hata vermesini engellemek. Connection Managers sekmesi altına bağlantı gelecektir.

9. Şimdi visual studio’nun toolbox panelini görüntüleyin. Alışmış olduğuğunuz toolbox’dan farklı değil mi? Çünkü üzerinde sadece ssis ile ilgili araçları bulundurmakta. Bu panelden Data Flow Task aracını sürükleyerek ekrana taşıyın. Bu araç farklı tipteki veri kaynakları arasında dönüşümü sağlayan ve ssis’in sanıyorum en sık kullanılan bileşenidir. Data Flow Task’in üzerine çift tıklayarak içine girin. İçine girdiğiniz zaman toolbox üzerindeki araçların değiştiğini göreceksiniz. Bu durumda araçlar 3 kısma ayrılmıştır. Source, Transformation ve Destination araçları. Adlarından anlaşılabileceği üzere bu araçlar, veriyi alan (source), işleyen(transformation) ve kaydeden(destination) araçlardır.

10. Şimdi ToolBox’ın Data Flow Sources kısmından bir Excel source’u alıp ortaya sürükleyin. Hemen sonrada Data Flow Destinations kısmından bir OleDB destination alın ve gene ortaya sürükleyin.

11. Excel Source kutusunun kenarına çift tıklayarak özelliklerine ulaşın. OLE DB Connection Manager alanından Excel Connection Manager’ı seçin. Hatırlarsanız ki bu daha önceden Connection Managers sekmesinde oluşturduğumuz bağlantı idi. Daha sonra Data Access mode kısmından Table or view ve Name of Excel Sheet kısmından ise sayfa1’i seçin. Tabi İngilizce bir Excel kullanıyorsanız burası sheet1 şeklinde olacaktır. Son görüntü bu şekilde:

12. Excel source kutusundan çıkan yeşil oku sürükleyerek OLE DB Destination kutusuna bağlayın.

13. Sırada destination bağlantılarını yapmak var. OLE DB destination kutusunun kenarına çift tıklayarak özelliklerini açın. New düğmesine tıklayın ve açılan pencerede yeniden New düğmesine tıklayın. Çıkan pencerede sizin sql server’ınıza ve isimler adlı tablonuzun bulunduğu veritabanına bağlantı yapın. Görüntü benzer şekilde olacaktır. İsterseniz Test Connection düğmesini tıklayarak bağlantınızı sınayabilirsiniz.

14. 2 defa ok düğmesine tıklayarak bu pencereleri kapatın. Data Access mode alanından Table or View seçeneğini Name of the table or the view kısmından ise isimler adlı tabloyu seçin. Sonra OK diyerek bu pencereyi kapatın.

15. Şimdi bir visual studio programı gibi package’ı yani çalışmanızı çalıştırın. Kutular yeşile döndüyse package çalışmıştır. Sqlserver içinde isimler tablosuna bakın. Seçtiğiniz Excel tablosundaki veriler yazılmış değil mi?

16. Bir Excel dosyasını ssis servisi ile sql server’a geçirmeyi başardınız. Şimdi sıradaki aşamaya hazırsınız. Belirttiğimiz klasördeki bütün Excelleri tarayıp sql’e geçirmek. Ben yaşamadım ama hata alıyorsanız belki Excel dosyanız açık olabilir. Onu kapatıp bir daha deneyin.

17. Connection Managers alanındaki Excel Connection Manager’i seçin ekranın sağındaki Properties penceresininden Connection String değerini kopyalayın. Önemli bir nokta Excel connection manager üzerine çift tıklarsanız, ilgili edit penceresi gelir. Properties penceresi ekranın sağındaki alışageldiğimiz properties penceresi. Buradan kopyaladığınız değer yaklaşık şöyle bir metin olmalı.

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\ssis_excel\Kitap1.xls;Extended Properties="Excel 8.0;HDR=YES";

18. Şimdi ekrandaki sekmelerden Control Flow sekmesine tıklayın

19. Bu alanda boş bir yere tıklayın. Şimdi bir variable tanımlama vakti. Bunun için View --> Other Windoww --> Variables yolunu kullanarak Variables sekmesini görüntüleyin. Bu sekme üzerinde Add Variable düğmesine tıklayarak filename isimli bir değişken oluşturun değişken tipini de string olarak değiştirin. Son olarak connection string’den kopyaladığınız değeri sadece dosya yolunu gösterecek şekilde buraya yapıştırın. Oluşturduğunuz değişkenin scope değerinin package olmasına özen gösterin. Böylece bütün proje içinde geçerli olacaktır. Eğer package değilse Control Flow alanında boş bir yere tıklayarak değişkeni yeniden eklemeyi deneyin. Son görünüm şöyle olacaktır.

20. Excel Connection Manager’in properties sekmesindeki Expressions alanının yanındaki düğmeye tıklayın. Property Expressions Editor penceresi açılacaktır. Property alanından Connection String’i seçin ve yanındaki Expressions düğmesini tıklayın.

21. Ekrana "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @[User::filename] + ";Extended Properties=\"Excel 8.0;HDR=YES\";" şeklinde yazın. Fark edeceğiniz üzere kopyaladığımız connection string’i, data source değerini değişkenden alacak şekilde değiştirdik.

22. Burada expression’ın doğru yazılması çok önemlidir. OK düğmelerine tıklayarak pencereleri kapatın. Projenizi bir daha çalıştırabilirsiniz. Gene belirttiğiniz Excel dosyasını veritabanına yazacaktır. Henüz klasör içindeki bütün dosyaları taratmadık.

23. Control Flow sekmesine gelin ve toolbox’dan bir tane Foreach Loop Container’ıData Flow Task öğesini alıp container’ın içine sürükleyerek koyun. sürükleyip çalışma alanına ekleyin daha sonra da

24. Foreach Loop Container kenarına çift tıklayarak özelliklerine erişin. Collection sekmesinden enumerator özelliğini Foreach File Enumerator olarak ayarlayın. Foreach File Enumerator, loop container’ın her dosyayı aramasını sağlar. Tabi bir de dosyaları nerede araması gerektiğini belirtmek gerekir. Browse düğmesini kullanarak içinde Excel dosyalarının bulunduğu klasörü seçin. Files alanına *.xls yazarak belirtilen klasörde sadece excel dosyalarını taratmayı seçin. Bu alanı geçmeden önemli bir noktaya değinmek istiyorum. Mesela dosya01.01.2008.xls, dosya02.01.2008.xls şeklinde Excel dosyalarınızı almak istiyorsanız buraya dosya*.xls yazabilirsiniz. Böylece adı dosya ile başlamayan excel’ler dikkate alınmaz. Son görünüm şu şekildedir:

25. Şimdi aynı pencerede Variable Mappings sekmesine tıklayın.Buradan da değişkeninizi seçip OK düğmesine tıklayın.

26. İşte package’iniz hazır. Baştan çalıştırdığınızda bütün Excel dosyalarının taranıp veritabanına yazıldığını göreceksiniz.

Oldukça etkileyici değil mi? Umarım basamak basamak incelediğimiz bu örnek sorunlarınızı çözmeye yardımcı olur.