Volkan Atasever

mühendislik, edebiyat, retro computer, yazılım, şiir, nümismatik, bilişim, podcast ve daha bir çok yazılarım...

SQL Server'da kolon isimlerinde özel karakter kullanmak

clock Ekim 26, 2009 03:13 by author Volkan Atasever

Çoğunlukla kendi tablolarımızı oluştururken kağıt üstünde özel karakterler içeren isimler veririz. Sql server ise bu özel karakterlere izin vermez. Tablo isimlerini eğer standar tablo ismi gibi yazarsanız bu sorunu yaşarsınız fakat bu sorunu köşeli parantez kullanarak aşabiliyoruz. Aşağıdaki örnekte normal kullanımda alınan hata mesajıda ektedir.

create table deneme(m/v varchar(3))

Msg 102, Level 15, State 1, Line 1
Incorrect syntax near '/'
.

Köşeli parantezlerimizi kullanıp aynı kodu yazdığımızda ise;

create table deneme([m/v] varchar(3))

Command(s) completed successfully.
 



Özelleştirilmiş DataBase Rolü tanımlamak ve izinleri yönetmek

clock Ekim 21, 2009 04:50 by author Volkan Atasever

Özelleştirilmiş veri tabanı rolleri sayesinde kullanıclara istediğimiz gibi özelleştirebildiğimiz rolleri atamamızı sağlar bu sayede özel bir rol tanımlayıp istediğimiz sayıda kullanıcıya bu rolleri atayabiliriz. Bunları yapmak bize hız ve veritabanımızı da daha kolay yönetmemizi sağlamaktadır. Aşağıda yeni bir rol tanımlayıp bu role kendi seçimimiz olan rolleri verip kullanıcımıza da bu rolleri atamktayız. Scriptte kullandığım sp_addrolemember prosedürü sql server'a ait bir prosedür olup bu rolleri kullanıcının rolü haline getirmemizi sağlamaktadır.

 

Bu adımda AdventureWorks database'i üstünde rol yaratmaktayız;

USEAdventureWorks

GO

CREATE ROLE [TestRol_1] AUTHORIZATION[dbo]

Go

 

Burada tanımladığımız rol'e izinlerimizi veriyoruz.

USE AdventureWorks

GO

GRANT ALTER,EXECUTE, SELECT,INSERT,UPDATE,DELETE

ON SCHEMA ::dbo

TO TestRol_1

Go

 

USEAdventureWorks

GO

GRANT BACKUP DATABASE,BACKUP LOG To [TestRol_1]

Go

 

SQL Server'ın ken içinde barındırdığı sp_addrolemember prosedürü ile rolümüze kullanıcı eklemekteyiz.

USEAdventureWorks

GO

EXEC sp_addrolememberN'TestRol_1', N'USER_ISMI'

GO

 

Bu adımda rolünü tanımladığımız kullanıcı için Windows Login hakkı vermekteyiz varsayılan veritabanı olaraksa AdventureWork veritabanını kullanmaktayız.

USEAdventureWorks

GO

CREATE LOGIN [DenemeDomain\USER_ISMI] FROM WINDOWS WITH DEFAULT_DATABASE=AdventureWorks

GO

 

Bu adımda veri tabanı için kullanıcımızı tanımlamaktayız.

USEAdventureWorks

GO

CREATE USER [USER_ISMI] FORLOGIN [DenemeDomain\USER_ISMI]

GO

 

Kaynak: Namwar Rizvi



Veritabanında tablolar arası ilişkiyi nasıl bulabilirim?

clock Ekim 21, 2009 04:11 by author Volkan Atasever

Database Yöneticileri ve SQL Server geliştiricileri genellikle bu ilişkileri bulmak için hızlı bir script'e gereksinim duyar. Normal yollardan incelemek gerçekten bazen imkansıza yakın bazen ise uzun zamanlar alan bir işkenceye dönüşmektedir. Aşağıda SQL Server NewsGroup'larda rastladaığım bir scripte yer vermek istiyorum. Oldukça kullanışlı bir script. Yeni başlayanların ve hatta piyasada deneyimli olanların dahi uzun kağıtlarda bu bağlantıları çözmeye çalıştığına şahit olduğum için faydalı olacağına eminim. AdventureWorks veritabanına ait bir örnek çıktı da aşağıda verilmiştir. Ana tabloyu ve bunun alt tabloları ile beraber foreign keylerin dökümünüde vermektedir.

 

Select

 

object_name(rkeyid) Parent_Table,

 

object_name(fkeyid) Child_Table,

 

object_name(constid) FKey_Name,

 

c1.name FKey_Col,

 

c2.name Ref_KeyCol

 

From

 

sys.sysforeignkeys s

 

Inner join sys.syscolumns c1

 

on ( s.fkeyid = c1.id And s.fkey = c1.colid )

 

Inner join syscolumns c2

 

on ( s.rkeyid = c2.id And s.rkey = c2.colid )

 

Order by Parent_Table,Child_Table

 

 

Script'in AdventureWorks örnek database'in den alınan çıktısı:

 



Windows Mobile ile Görüntü İşleme

clock Ekim 13, 2009 04:59 by author Volkan Atasever
 
Mobil cihazlar özellikle Windows Mobile kullanan cihazlar hayatımıza girdiğinden beri sıradan masaüstü ve dizüstü bilgisayarla yaptığımız işlemlerin hepsini bu cihazlarlada yapabilir seviyeye geldik. İşlemci güçleri ve depolama kapasiteleri arttığı için artık ben PDA=Desktop=Laptop denklemini her alanda söylemeye başladım. Bazı cihazlarda resimleri işlemek için gerekli olan yazılım gömülü gelmekte fakat PDA’lerin bazı versiyonlarında yok veya tam donanımlı bir image işleme yazılımı bulunmamakta. Bulunsa dahi çoğu teknoloji için durağan bir görüntü işlemek yazılım geliştirici kişi tarafından bir ihtiyaç halini almaktadır. Bu yazımda sizlere durağan görüntü olan image ler ile Windows Mobile cihazın kamerasından veya dışarıdan aldığınız görüntüyü işlemeyi göstermek istemekteyim. Burada asıl zorluk .Net Framework’ün geniş olanaklarından .Net Compact Framework’un kısıtlı olanaklarına geçiş yaptığımızdan ötürü olacaktır.

 

RGB mantığı ve kısmende olsa unsafe kod kullanacağımızı belirtmek isterim. Öncelikle kullanıcı arayüzümüzü oluşturalım;

 

Bu arayüz sayesinde kırmızı,yeşil ve mavi değerlerimizin her tonunu ve birlikte yansıyan her rengi verebilmekteyiz.

Bir pixel’in Red,Green veya Blue değerinin 255 aldığını düşünürsek, toplam bir imaja verebileceğimiz renk sayısı,

255*255*255 olacaktır. Yeni Renk kısmında ise oluşan renkleri görmekteyiz. Formumuzun kodu aşağıdaki şekildedir;

 

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

    public partial class renkminimize : Form

    {

        Image islenecek;

        menu mn;

        public renkminimize(Image img,menu mnu)

        {

            mn = mnu;

            islenecek = img;

            InitializeComponent();

        }

 

        private void menuItem1_Click(object sender, EventArgs e)

        {

            mn.Show();

            this.Dispose();

        }

        private void deger()

        {

            Color newColor = Color.FromArgb(trackBar1.Value, trackBar2.Value, trackBar3.Value);

            label5.BackColor = newColor;

        }

        private void trackBar1_ValueChanged(object sender, EventArgs e)

        {

            deger();

        }

 

        private void trackBar2_ValueChanged(object sender, EventArgs e)

        {

            deger();

        }

 

        private void trackBar3_ValueChanged(object sender, EventArgs e)

        {

            deger();

        }

 

        private void menuItem2_Click(object sender, EventArgs e)

        {

            Bitmap bmp=new Bitmap(islenecek);

            bool donus = filtercore.ColorChangeMinimize(bmp, trackBar1.Value, trackBar2.Value, trackBar3.Value);

            Image img= bmp;

            menu mnn = new menu(img);          

            mn.Dispose();

            this.Dispose();

            mnn.Show();

        }

}

Trackbar’daki değerlerle Color sınıfını kullanarak yeni rengimizi herhangi bir trackbar değişiminde tutmaktayız.

Bu sayede her renk Color sınıfı sayesinde elimizde olmakta. FilterCore sınıfımız ise aşağıda bu sayede yeni rengi imaja uygulayabilmekteyiz;

 

public class filtercore

{

        public static bool ColorChangeMinimize(Bitmap b, int red, int green, int blue)

        {

            BitmapData bmData = b.LockBits(new Rectangle(0, 0, b.Width, b.Height), ImageLockMode.ReadWrite,PixelFormat.Format24bppRgb);

 

            int stride = bmData.Stride;

            System.IntPtr Scan0 = bmData.Scan0;

 

            unsafe

            {

                byte* p = (byte*)(void*)Scan0;

 

                int nOffset = stride - b.Width * 3;

                int Pixel;

 

                for (int y = 0; y < b.Height; ++y)

                {

                    for (int x = 0; x < b.Width; ++x)

                    {

                        Pixel = p[2] + red;

                        Pixel = Math.Max(Pixel, 0);

 

                        p[2] = (byte)Math.Min(255, Pixel);

 

                        Pixel = p[1] + green;

                        Pixel = Math.Max(Pixel, 0);

 

                        p[1] = (byte)Math.Min(255, Pixel);

 

                        Pixel = p[0] + blue;

                        Pixel = Math.Max(Pixel, 0);

 

                        p[0] = (byte)Math.Min(255, Pixel);

 

                        p += 3;

                    }

                    p += nOffset;

                }

            }

 

            b.UnlockBits(bmData);

 

            return true;

        }

 

}

Bu sınıf sayesinde resmimizi unsafe olarak piksel piksel işleyebilmekteyiz. Her byte’ına ulaştığımız için tüm resimin

kontrolü elimizde.

               Ana menümüzden renkminimize sınıfına ise bir image göndererek çağırmalıyız;

 

                renkminimize rnkd = new renkminimize(this.pictureBox1.Image, this);

                rnkd.Show();

          this.Hide();

 Programımızın çalışmasını ise aşağıdaki ekran görüntülerinden görebilirsiniz. Aşağıdaki değerlerin renk sonucunu realtime renk paletinden görebilirsiniz.

 Uygulaya bastıktan sonra ana menüdeki picturebox'ın içine yeni renkteki imajımız yerleşecektir.

 

 

  Yeni imaj !

 

 Kaynak: imaj işleme sınıfı, codeproject.com



Windows Mobile Emülatörü Active Sync veya Windows Mobile Device Center ile Senkronize Etmek !

clock Ekim 13, 2009 04:46 by author Volkan Atasever

 

Emülatörde uygulamanızı çalıştırdıktan sonra Windows XP’de Active Sync veya Windows Vista’da WMDC ile senkronize etmek isteyebilirsiniz. Bu sayede bilgisayarınızdan dosya, resim veya herhangi bir istediğiniz veriyi Emülatöre gönderebilir ve işlem yapabilirsiniz. Bunun için emülatör açıkken;

 

Device Emulator Manager’ı seçip ardından;

 

Pencereden çalışan emülatörünüzü bulup Cradle tuşuna basıyoruz. Artık Active Synce veya WMDC bilgissayarınıza bağlı bir cihaz varmış gibi tanıyor ve istediğiniz senkronizasyonu yapabiliyorsunuz.



Volkan Atasever Kimdir ?

E-Mail: volkan(et)volkanatasever.com

Genel Müdür/S4G 
Bilgisayar Mühendisi

mühendislik, edebiyat, retro computer, yazılım, şiir, nümismatik, bilişim, podcast ve bir çok kategoride yazılarım...

Yazılım Kitaplarım

   

Şiir Kitaplarım

Dergi Yazılarım

 

Sosyal Ağlarım

 

 

 

 

Retro Bilgisayar Dergimiz

Türkçe Retro Bilgisayar dergimiz haziran 2016'da ilk sayısını çıkardı. ilk sayı yeni bir internet sitesinden tekrar yayınlanacaktır. Retro camiası tüm dünyada oldukça eğlenceli bir camia. Sizde katkıda bulunmak isterseniz bana mail atmanız yeterli. Dergimiz PDF formatında ve tamamen ücretsizdir.

Yasal Bilgi

Sitedeki yazıları,kodlar ve diğer materyaller Volkan Atasever'e aittir. Yazarı ve siteyi kaynak göstererek yazıları paylaşabilirsiniz.  Copyright(c)2004-2017

Sign In

Yazılım