Koray Kırdinli

Yazılım ve İş Yaşamı Hakkında Paylaşımlar

Bir tablo adı geçen Stored Procedure’lerin listesini almak.

Bir tablo adının geçtiği stored prosedürleri bulmak için aşağıdaki select ten faydalanabilirsiz.  Tabi sadece tablo adı değil herhangi bir kelime de aratabilirsiniz.  Bundan sonraki arama işlemleri artık yaratıcılığınıza kalmış.
SELECT DISTINCT *
FROM syscomments sc
INNER JOIN sysobjects so ON sc.id=so.id
INNER JOIN sys.procedures AS p ON p.[object_id]=sc.id
INNER JOIN sys.schemas s ON s.[schema_id] = p.[schema_id]
WHERE sc.TEXT LIKE ‘%TABLE_NAME%’ AND s.name = ‘SCHEMA_NAME’
Reklamlar

Eylül 23, 2014 Posted by | MSSql | , | Yorum bırakın

Bat ile Scheduled Task Oluşturma

Merhabalar,

bat uzantılı dosyalar bildiğiniz gibi windows komutları çalıştırmamıza yarayan küçük programcıklardır. Bu örneğimizde işyerinde işime yarıyan bir scheduled task yani zamanlanmış görev  örneğini paylaşıyor olacağım.

Bir text dosyasına aşağıdaki scripti kopyalayıp uzantısını da .bat olarak kaydederseniz, dosyaya çift tıkladığınızda zamanlanmış görevi oluşturmuş olacaktır.

schtasks /create /tn “ServisAdı” /tr “c:\xxxxx.exe” /sc DAILY /st 23:00:00 /sd 01/01/2014 /ru KullaniciAdi /rp Sifre

Zamanlanmış Görevi doğru oluşturup oluşturmadığına Bilgisayarıma sağ tıklayıp Manage diyerek Task Scheduler kısmından bakabilirsiniz.

Untitled

 

 

Nisan 18, 2014 Posted by | Donanım, İpucu | , , | Yorum bırakın

C# Ftp sınıfı

Aşağıdaki sınıf ile c# da FTP upload, download, delete gibi işlemleri yapabilirsiniz.

public class FTP
    {
        private string host = null;
        private string user = null;
        private string pass = null;
        private FtpWebRequest ftpRequest = null;
        private FtpWebResponse ftpResponse = null;
        private Stream ftpStream = null;
        private int bufferSize = 2048;

        public FTP(string hostIP, string userName, string password)
        {
            host = hostIP; user = userName; pass = password;
        }

        public void Download(string remoteFile, string localFile)
        {
            try
            {
                ftpRequest = (FtpWebRequest)FtpWebRequest.Create(host + "/" + remoteFile);
                ftpRequest.Credentials = new NetworkCredential(user, pass);
                ftpRequest.UseBinary = true;
                ftpRequest.UsePassive = true;
                ftpRequest.KeepAlive = true;
                ftpRequest.Method = WebRequestMethods.Ftp.DownloadFile;
                ftpResponse = (FtpWebResponse)ftpRequest.GetResponse();
                ftpStream = ftpResponse.GetResponseStream();
                FileStream localFileStream = new FileStream(localFile, FileMode.Create);
                byte[] byteBuffer = new byte[bufferSize];
                int bytesRead = ftpStream.Read(byteBuffer, 0, bufferSize);
                try
                {
                    while (bytesRead > 0)
                    {
                        localFileStream.Write(byteBuffer, 0, bytesRead);
                        bytesRead = ftpStream.Read(byteBuffer, 0, bufferSize);
                    }
                }
                catch (Exception ex) { Console.WriteLine(ex.ToString()); }
                localFileStream.Close();
                ftpStream.Close();
                ftpResponse.Close();
                ftpRequest = null;
            }
            catch (Exception ex)
            {
                LogManager.Log("FTP Download: ",ex);
            }
            return;
        }

        public void Upload(string remoteFile, string localFile)
        {
            try
            {
                ftpRequest = (FtpWebRequest)FtpWebRequest.Create(host + "/" + remoteFile);
                ftpRequest.Credentials = new NetworkCredential(user, pass);
                ftpRequest.UseBinary = true;
                ftpRequest.UsePassive = true;
                ftpRequest.KeepAlive = true;
                ftpRequest.Method = WebRequestMethods.Ftp.UploadFile;
                ftpStream = ftpRequest.GetRequestStream();
                FileStream localFileStream = new FileStream(localFile, FileMode.Create);
                byte[] byteBuffer = new byte[bufferSize];
                int bytesSent = localFileStream.Read(byteBuffer, 0, bufferSize);
                try
                {
                    while (bytesSent != 0)
                    {
                        ftpStream.Write(byteBuffer, 0, bytesSent);
                        bytesSent = localFileStream.Read(byteBuffer, 0, bufferSize);
                    }
                }
                catch (Exception ex) { Console.WriteLine(ex.ToString()); }
                localFileStream.Close();
                ftpStream.Close();
                ftpRequest = null;
            }
            catch (Exception ex)
            {
                LogManager.Log("FTP Upload: ", ex);
            }
            return;
        }

        public void Delete(string deleteFile)
        {
            try
            {
                ftpRequest = (FtpWebRequest)WebRequest.Create(host + "/" + deleteFile);
                ftpRequest.Credentials = new NetworkCredential(user, pass);
                ftpRequest.UseBinary = true;
                ftpRequest.UsePassive = true;
                ftpRequest.KeepAlive = true;
                ftpRequest.Method = WebRequestMethods.Ftp.DeleteFile;
                ftpResponse = (FtpWebResponse)ftpRequest.GetResponse();
                ftpResponse.Close();
                ftpRequest = null;
            }
            catch (Exception ex)
            {
                LogManager.Log("FTP Delete: ", ex);
            }
            return;
        }

        public void Rename(string currentFileNameAndPath, string newFileName)
        {
            try
            {
                ftpRequest = (FtpWebRequest)WebRequest.Create(host + "/" + currentFileNameAndPath);
                ftpRequest.Credentials = new NetworkCredential(user, pass);
                ftpRequest.UseBinary = true;
                ftpRequest.UsePassive = true;
                ftpRequest.KeepAlive = true;
                ftpRequest.Method = WebRequestMethods.Ftp.Rename;
                ftpRequest.RenameTo = newFileName;
                ftpResponse = (FtpWebResponse)ftpRequest.GetResponse();
                ftpResponse.Close();
                ftpRequest = null;
            }
            catch (Exception ex)
            {
                LogManager.Log("FTP Rename: ", ex);
            }
            return;
        }

        public void CreateDirectory(string newDirectory)
        {
            try
            {
                ftpRequest = (FtpWebRequest)WebRequest.Create(host + "/" + newDirectory);
                ftpRequest.Credentials = new NetworkCredential(user, pass);
                ftpRequest.UseBinary = true;
                ftpRequest.UsePassive = true;
                ftpRequest.KeepAlive = true;
                ftpRequest.Method = WebRequestMethods.Ftp.MakeDirectory;
                ftpResponse = (FtpWebResponse)ftpRequest.GetResponse();
                ftpResponse.Close();
                ftpRequest = null;
            }
            catch (Exception ex)
            {
                LogManager.Log("FTP CreateDirectory: ", ex);
            }
            return;
        }

        public string GetFileCreatedDateTime(string fileName)
        {
            try
            {
                ftpRequest = (FtpWebRequest)FtpWebRequest.Create(host + "/" + fileName);
                ftpRequest.Credentials = new NetworkCredential(user, pass);
                ftpRequest.UseBinary = true;
                ftpRequest.UsePassive = true;
                ftpRequest.KeepAlive = true;
                ftpRequest.Method = WebRequestMethods.Ftp.GetDateTimestamp;
                ftpResponse = (FtpWebResponse)ftpRequest.GetResponse();
                ftpStream = ftpResponse.GetResponseStream();
                StreamReader ftpReader = new StreamReader(ftpStream);
                string fileInfo = null;
                try
                {
                    fileInfo = ftpReader.ReadToEnd();
                }
                catch (Exception ex)
                {
                    LogManager.Log("FTP GetFileCreatedDateTime1: ", ex);
                }
                ftpReader.Close();
                ftpStream.Close();
                ftpResponse.Close();
                ftpRequest = null;
                return fileInfo;
            }
            catch (Exception ex)
            {
                LogManager.Log("FTP GetFileCreatedDateTime2: ", ex);
            }
            return "";
        }

        public string GetFileSize(string fileName)
        {
            try
            {
                ftpRequest = (FtpWebRequest)FtpWebRequest.Create(host + "/" + fileName);
                ftpRequest.Credentials = new NetworkCredential(user, pass);
                ftpRequest.UseBinary = true;
                ftpRequest.UsePassive = true;
                ftpRequest.KeepAlive = true;
                ftpRequest.Method = WebRequestMethods.Ftp.GetFileSize;
                ftpResponse = (FtpWebResponse)ftpRequest.GetResponse();
                ftpStream = ftpResponse.GetResponseStream();
                StreamReader ftpReader = new StreamReader(ftpStream);
                string fileInfo = null;
                try
                {
                    while (ftpReader.Peek() != -1)
                    {
                        fileInfo = ftpReader.ReadToEnd();
                    }
                }
                catch (Exception ex)
                {
                    LogManager.Log("FTP GetFileSize1: ", ex);
                }
                ftpReader.Close();
                ftpStream.Close();
                ftpResponse.Close();
                ftpRequest = null;
                return fileInfo;
            }
            catch (Exception ex)
            {
                LogManager.Log("FTP GetFileSize2: ", ex);
            }
            return "";
        }

        public string[] DirectoryListSimple(string directory)
        {
            try
            {
                ftpRequest = (FtpWebRequest)FtpWebRequest.Create(host + "/" + directory);
                ftpRequest.Credentials = new NetworkCredential(user, pass);
                ftpRequest.UseBinary = true;
                ftpRequest.UsePassive = true;
                ftpRequest.KeepAlive = true;
                ftpRequest.Method = WebRequestMethods.Ftp.ListDirectory;
                ftpResponse = (FtpWebResponse)ftpRequest.GetResponse();
                ftpStream = ftpResponse.GetResponseStream();
                StreamReader ftpReader = new StreamReader(ftpStream);
                string directoryRaw = null;
                try
                {
                    while (ftpReader.Peek() != -1)
                    {
                        directoryRaw += ftpReader.ReadLine() + "|";
                    }
                }
                catch (Exception ex)
                {
                    LogManager.Log("FTP DirectoryListSimple1: ", ex);
                }
                ftpReader.Close();
                ftpStream.Close();
                ftpResponse.Close();
                ftpRequest = null;
                try
                {
                    string[] directoryList = directoryRaw.Split("|".ToCharArray()); return directoryList;
                }
                catch (Exception ex)
                {
                    LogManager.Log("FTP DirectoryListSimple2: ", ex);
                }
            }
            catch (Exception ex)
            {
                LogManager.Log("FTP DirectoryListSimple3: ", ex);
            }
            return new string[] { "" };
        }

        public string[] DirectoryListDetailed(string directory)
        {
            try
            {
                ftpRequest = (FtpWebRequest)FtpWebRequest.Create(host + "/" + directory);
                ftpRequest.Credentials = new NetworkCredential(user, pass);
                ftpRequest.UseBinary = true;
                ftpRequest.UsePassive = true;
                ftpRequest.KeepAlive = true;
                ftpRequest.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
                ftpResponse = (FtpWebResponse)ftpRequest.GetResponse();
                ftpStream = ftpResponse.GetResponseStream();
                StreamReader ftpReader = new StreamReader(ftpStream);
                string directoryRaw = null;
                try
                {
                    while (ftpReader.Peek() != -1)
                    {
                        directoryRaw += ftpReader.ReadLine() + "|";
                    }
                }
                catch (Exception ex)
                {
                    LogManager.Log("FTP DirectoryListDetailed1: ", ex);
                }
                /* Resource Cleanup */
                ftpReader.Close();
                ftpStream.Close();
                ftpResponse.Close();
                ftpRequest = null;
                /* Return the Directory Listing as a string Array by Parsing 'directoryRaw' with the Delimiter you Append (I use | in This Example) */
                try
                {
                    string[] directoryList = directoryRaw.Split("|".ToCharArray());
                    return directoryList;
                }
                catch (Exception ex)
                {
                    LogManager.Log("FTP DirectoryListDetailed2: ", ex);
                }
            }
            catch (Exception ex)
            {
                LogManager.Log("FTP DirectoryListDetailed3: ", ex);
            }
            return new string[] { "" };
        }
    }

Nisan 2, 2014 Posted by | C#, Yazılım | , , , , | 1 Yorum

Attempted to read or write protected memory. This is often an indication that other memory is corrupt.

Bazı C# projelerinde unmanaged kodlar kullanmak durumunda kalabiliyoruz. Managed kod demek hafıza yönetimi(memory management) yonetilen demek oluyor.Oluşturduğumuz değişkenlerin yok edilmesi işini kullandığımız sistem(FrameWork, Programlama dili.) yapıyor demektir. Bir değişkeni tanımladığımızda bir süre kullanılmadığında bunu otomatik olarak GAC(Garbage Collector) tarafından hafızadan silinir. Bu yönetilen koda bir örnektir. “Unhandled Exception: System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt” hatasını da unmanaged kodu debug modda çalıştırdığımızda almıştım. Biraz araştırdım ve bunu Visual Studio da basit bir ayar yaparak geçebileceğimi öğrendim. Tools menu -> Options -> Debugging -> General  menüsüne girerek “Suppress JIT optimization on module load” check’ini kaldırıyoruz.   suppress

Nisan 1, 2014 Posted by | C#, Yazılım | , , | Yorum bırakın

C# ile Resim Sıkıştırma

Uzun zaman resim sıkıştırmak için araştırdıktan sonra işime en çok aşağıdaki kod parçası yaradı. 4 MB lık bitmap bir resmi, 10KB a kadar düşürebiliyor. Umarım işinize yarar.

 /// <summary>
        /// Method to resize, convert and save the image.
        /// </summary>
        /// <param name="image">Bitmap image.</param>
        /// <param name="maxWidth">resize width.</param>
        /// <param name="maxHeight">resize height.</param>
        /// <param name="quality">quality setting value.</param>
        /// <param name="filePath">file path.</param>      
        public static Image ResizeImage(Bitmap image, int maxWidth, int maxHeight, int quality, string filePath)
        {
            // Get the image's original width and height
            int originalWidth = image.Width;
            int originalHeight = image.Height;

            // To preserve the aspect ratio
            float ratioX = (float)maxWidth / (float)originalWidth;
            float ratioY = (float)maxHeight / (float)originalHeight;
            float ratio = Math.Min(ratioX, ratioY);

            // New width and height based on aspect ratio
            int newWidth = (int)(originalWidth * ratio);
            int newHeight = (int)(originalHeight * ratio);

            // Convert other formats (including CMYK) to RGB.
            Bitmap newImage = new Bitmap(newWidth, newHeight, PixelFormat.Format24bppRgb);

            // Draws the image in the specified size with quality mode set to HighQuality
            using (Graphics graphics = Graphics.FromImage(newImage))
            {
                graphics.CompositingQuality = CompositingQuality.HighQuality;
                graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
                graphics.SmoothingMode = SmoothingMode.HighQuality;
                graphics.DrawImage(image, 0, 0, newWidth, newHeight);
            }

            // Get an ImageCodecInfo object that represents the JPEG codec.
            ImageCodecInfo imageCodecInfo = GetEncoderInfo(ImageFormat.Jpeg);

            // Create an Encoder object for the Quality parameter.
            Encoder encoder = Encoder.Quality;

            // Create an EncoderParameters object. 
            EncoderParameters encoderParameters = new EncoderParameters(1);

            // Save the image as a JPEG file with quality level.
            EncoderParameter encoderParameter = new EncoderParameter(encoder, quality);
            encoderParameters.Param[0] = encoderParameter;
            newImage.Save(filePath, imageCodecInfo, encoderParameters);

            return Image.FromFile(filePath);
        }

        /// <summary>
        /// Method to get encoder infor for given image format.
        /// </summary>
        /// <param name="format">Image format</param>
        /// <returns>image codec info.</returns>
        private static ImageCodecInfo GetEncoderInfo(ImageFormat format)
        {
            return ImageCodecInfo.GetImageDecoders().SingleOrDefault(c => c.FormatID == format.Guid);
        }

Mart 21, 2014 Posted by | C# | , , , , | Yorum bırakın

Visual Studio Varsayılan Ayarlar

Merhabalar, kurduğum bir eklenti yüzünden visual studio intelisense özelliği girmişti. Çözümü de oldukça basit. Visual Studio varsayılan ayarlara geri dönmek için Tools->Import and Export Settings e tıklayıp Restore all settings demeniz yeterli.

Untitled

Mart 20, 2014 Posted by | C# | , | 1 Yorum

C# da object initializer kullanımı

Object initializer C# 3.0 ile birlikte hayatımıza girdi. Object initializer kullanmak hem daha okunaklı hem de daha güvenli bir kod yazma yöntemi sunuyor.

Aşağıda object initializer ve normal yollarla yaratılan 2 nesne örneği bulunmakta. Klasik yöntem kullanırsak multithread uygulamalarda nesnenin parçalı olarak yaratılma ihtimali var. Bunu engellemek için ayrıca lock koymak gerekir. Ancak object initializer ile nesneler yaratıldığında bu risk ortadan kalkar.

Bir nesnenin object initializer ile yaratılması :

StudentName student = new StudentName
{
FirstName = "Koray",
LastName = "Kırdinli",
ID = 116
};

Nesnenin klasik yöntem ile yaratılması.

StudentName _tempStudent = new StudentName();
_tempStudent.FirstName = "Koray";
_tempStudent.LastName = "Kırdinli";
_tempStudent.ID = 488;
StudentName student = _tempStudent;

Aşağıdaki linkte olayı kavramak için güzel bir örnekten faydalanılmış.
http://community.bartdesmet.net/blogs/bart/archive/2007/11/22/c-3-0-object-initializers-revisited.aspx

Şubat 18, 2014 Posted by | C# | , , | Yorum bırakın

Binding failed because intellisense is out of date Hatası

Bir sınıf ismi veya değişken ismini değiştirdiğinizde Visual Studio altını kırmızı çiziyor ve o çizginin üzerine geldiğinizde bize rename etmek için seçenek sunuyor.

Untitled

 

Bunu yaptığınızda “Binding failed because intellisense is out of date” hatası alırsanız, önce projeyi clean yapıp rebuild yapın, yine olmazsa Visual Studio yu açıp kapayın.

 

Ocak 22, 2014 Posted by | C# | , , | Yorum bırakın

MBA Tez Sunumum

Koray kırdinli hr performance managegement e mba project from Koray Kırdinli
Tezin tamamı için linki tıklayınız… Koray Kırdinli HR Performance Management eMBA Project

 

Ocak 16, 2014 Posted by | MBA | , , , , | Yorum bırakın

2013 in review

The WordPress.com stats helper monkeys prepared a 2013 annual report for this blog.

Here’s an excerpt:

The concert hall at the Sydney Opera House holds 2,700 people. This blog was viewed about 13,000 times in 2013. If it were a concert at Sydney Opera House, it would take about 5 sold-out performances for that many people to see it.

Click here to see the complete report.

Ocak 16, 2014 Posted by | Güncel-Genel | , | Yorum bırakın