Makale Özeti

Bu yazımızda Visual Studio .Net 2003 ile SQL CE kullanarak Pocket PC veya Windows CE üzerinde nasıl veritabanı işlemleri yapabileceğimizi göreceğiz.

Makale

POCKET PC'DE SQL CE KULLANIMI -I


Bu yazımızda Visual Studio .Net 2003 ile SQL CE kullanarak Pocket PC veya Windows CE üzerinde nasıl veritabanı işlemleri yapabileceğimizi göreceğiz. Daha önceden Windows veya Web uygulamalarında ADO.NET kullananlar için anlaşılması zor olmayacaktır. Ancak bir kaç püf noktaya dikkat etmemiz gerekmektedir.


I) Visual Studio .Net içerisinden bir tane yeni Smart Device Application projesi yaratalım. Projemize SmartDeviceDeneme adını verelim.

 

 

II) Visual Studio ortamı bize proje için gerekli ortamı hazırlayıp ayarları yaptıktan sonra karışımıza çıkan formumuzu Pocket PC'mize göre boyutlarını küçülttükten sonra formumuza 2 Label, 2 TextBox, 3 Button ve 1 tane de Datagrid koyup şekildeki gibi bunları formumuzda düzenleyelim.

 

 

III) Hangi veritabanı ile çalışacaksak üstteki TextBox'a veritabanının adını giriyoruz, yalnız unutmayın SQL CE sdf uzantılı veritabanları ile çalışmaktadır, bu yüzden veritabanımızın adını .sdf uzantılı olacak şekilde yazıyoruz. Daha sonra veritabanı yarat tuşuna basarak yazdığımız isimdeki veritabanının MyDocuments klasörü altında yaratılmasını sağlıyoruz. Bunun için kullandığımız kodu inceleyecek olursak; 

 

public bool CreateDatabase()
{
try
{//Dosyanın var olup olmadığını kontrol ediyoruz. Eğer dosya yoksa //veritabanını yaratıyoruz.
if (!File.Exists("\\My Documents\\" + databaseName))
{//SqlCe motoru yaratatıyoruz.
SqlCeEngine engine = new SqlCeEngine("DataSource = \\My Documents\\" + databaseName);
engine.CreateDatabase();//Motorumuzun CreateDatabase() metodu ile //veritabanımızı yaratıyoruz.
engine.Dispose();//Motorumuzla işimiz bitti bu yüzden motoru bellekten atıyoruz.
return true;//İşlem doğru yapıldı diye true değer döndürüyoruz.
}
else
{//Eğer veritabanı daha önceden varsa kullanıcıya ne yapmak istediğini //soruyoruz.
DialogResult dg = MessageBox.Show("Mevcut veritabanı bilgilerini silmek ister misiniz?(E/H)", "Uyarı", MessageBoxButtons.YesNo,MessageBoxIcon.Question,MessageBoxDefaultButton.Button1);
if (dg == DialogResult.Yes)
{//Eğer veritabanı silinip yeniden yaratılsın denirse, dosyayı sistemden siliyoruz. Ve daha önce açıkladığımız şekilde dosyayı yeniden yaratıyoruz.
File.Delete("\\My Documents\\" + databaseName);
SqlCeEngine engine = new SqlCeEngine("DataSource = \\My Documents\\" + databaseName);
engine.CreateDatabase();
engine.Dispose();
return true;
}
}
return false;
}
catch(Exception ex)
{//Herhangi bir hata olursa hatayı yakalayıp, kullanıcıya işlemin //gerçekleşmediğine dair bilgi veriyoruz.
string hata = ex.ToString();
MessageBox.Show("Veritabanı yaratılamadı!");
return false;
}
}

 


 


IV) Şimdi de tablomuzu yaratmadan önce SQL CE'de desteklenen veri tiplerini inceleyelim. Kaynak olarak MSDN'e bakıp daha detaylı bilgiye ulaşabilirsiniz.


Veri Tipi

Açıklaması

bigint

-2^63 (- 9,223,372,036,854,775,808) ile 2^63-1 (9,223,372,036,854,775,807) arasındaki tamsayıları kapsar(Verilen sınırlar dahil). Saklama kapasitesi 8 bayt'tır.

integer

-2^31 (-2,147,483,648) ile 2^31 - 1 (2,147,483,647) arasındaki tamsayıları kapsar(Verilen sınırlar dahil). Saklama kapasitesi 4 bayt'tır.

smallint

–32,768 ile 32,767 arasındaki tamsayıları kapsar(Verilen sınırlar dahil). Saklama kapasitesi 2 bayt'tır.

tinyint

0 ile 255 arasındaki tamsayıları kapsar(Verilen sınırlar dahil). Saklama kapasitesi 1 bayt'tır.

bit

0 veya 1 değerini saklar.

numeric (p, s)

-10^38 +1 ile 10^38 –1 arasındaki sayıları tutar. p, 1 ile 38 arasında değer alır. s ise 0 ile p arasında değer alır.

money

-2^63 (- 922,337,203,685,477.5808) ile 2^63 - 1 (922,337,203,685,477.5807) arasındaki parasal verileri tutar(Verilen sınırlar dahil). Saklama kapasitesi 8 bayt'tır.

float

-1.79E + 308 ile 1.79E + 308 arasındaki kayan noktalı sayıları tutar(Verilen sınırlar dahil). Saklama kapasitesi 8 bayt'tır.

real

-3.40E + 38 ile 3.40E + 38 arasındaki kayan noktalı sayıları tutar(Verilen sınırlar dahil).

datetime

1 Ocak 1753 ile 31 Aralık 9999 tarihleri arasını zamanı ile birlikte tutabilir.

İki tane 4 bayt tamsayı olarak saklanır. İlk 4 bayt baz alınan tarihten(1 Ocak 1900) ne kadar önce veya sonra olduğunu gösterir. Baz alınan tarih sistemin referans tarihidir. 1 Ocak 1753'ten önceki tarihlerin girişine izin verilmez. Sonraki 4 bayt ise geceyarısından sonraki zamanı milisaniye olarak tutar. İzin verilen saniye değeri 0 ile 59 arasındadır.

nchar(n)

Sabit uzunluklu Unicode verilerini tutar. Kapasitesi 255 karakterdir. Varsayılan uzunluğu 1'dir.

nvarchar(n)

Değişken uzunluklu Unicode verilerini tutar. Kapasitesi 1 ile 255 karakter arasındadır. Varsayılan uzunluğu 1'dir.

ntext

Değişken uzunluklu Unicode verilerini tutar. Maksimum kapasitesi (2^30 - 2) / 2 (536,870,911) karakterdir.

binary(n)

Sabit uzunluklu ikili(binary) verileri tutar. Maksimum veri boyutu 510 bayt'tır. Varsayılan boyutu 1'dir.

varbinary(n)

Değişken uzunluklu ikili(binary) verileri tutar. Maksimum veri boyutu 510 bayt'tır. Varsayılan boyutu 1'dir.

image

Değişken uzunluklu ikili(binary) verileri tutar. Maksimum veri boyutu 2^30 – 1 (1,073,741,823) bayt'tır.

uniqueidentifier

Evrensel(Global) eşsizlik tanımlayıcısı(GUID). Saklama kapasitesi  16 bayt'tır.

IDENTITY [(s, i)]

Veri kolonunun özelliğidir. Bir veri tipi değildir. Tamsayı veri tiplerine sahip kolonlarda değerlerin eşsiz olmasını sağlar. Bir tabloda sadece tek bir kolon identity olabilir. Başlangıç değeri ve artış miktarı belirtilir ve bu kolon üzerinde güncelleneme işlemi yapılamaz.

s (seed) = başlangıç değeri

i (increment) = artış miktarı

ROWGUIDCOL

Veri kolonunun bir özelliğidir. Bir veri tipi değildir. Bu özelliğe sahip kolon eşsiz tanımlayıcı(uniqueidentifier) veri tipine sahiptir. Bir tabloda sadece tek bir kolon ROWGUIDCOL özelliğine sahiptir.


Bu yazımızda Smart Device Uygulamarında SQL CE 2.0 ile veri erişimine giriş yaptık. Bir sonraki yazımızda veritabanına örnek tablo eklenmesi ve bu tabloya örnek kayıt girilmesini göreceğiz.

Aytaç ÖZAY