28 Ocak 2014 Salı

Oluşturduğumuz Stored Procedure'lere Tüm Veritabanlarından Erişebilmek

SQL Serverda Stored Procedure, fonksiyon gibi objeler veritabanı seviyesinde olup sadece oluşturulduğu veritabanında kullanılabilirler. Eğer farklı bir veritabanına bağlı iken başka bir veritabanındaki objeye erişmek istersek ilgili objenin adının başına veritabanı adını da eklememiz gerekiyor. Aksi takdirde "Invalid object name '%.*ls'" hatasını alırız. Fakat özellikle SQL Serverın built-in sistem stored procedure ve fonksiyonlarını çalıştırırken veritabanı adı vermeksizin herhangi bir veritabnından ilgili objeye erişebiliyoruz.
İhtiyaç duyulduğu takdirde bir stored procedure bir kere oluşturulup veritabanı adı vermeden herhangi veritabanından çağrılabilir. Bunun için oluşturacağımız stored procedure'u master veritabanında ve "sp_" önekini kullanarak oluşturmamız yeterli olacaktır.
Şimdi bunu basit bir örnek üzerinde görelim. Örneğimizde öncelikle bir stored procedure yazıp ilgili stored procedure içinde şuanki aktif çalışma veritabanımızın adını ekran yazdıralım.
1use master
2go
3create proc sp_getdbname
4as
5select DB_NAME(db_id())


Yukarıdaki gibi master veritabanında “sp_” ön eki ile oluşturduğumuz stored procedure bir kaç veritabanında doğrudan çalıştıralım.
01use master
02go
03exec sp_getdbname
04 
05 
06use AdventureWorks2012
07go
08exec sp_getdbname
09 
10 
11use BtakademiSQLProg
12go
13exec sp_getdbname



Yukarıdaki sorgularımız çıktısına baktığımızda stored procedure’un sadece master veritabanında oluşturulmasına rağmen farklı veritabanlarından da veritabanı adı belirtilmeden erişilebilmektedir. Bu şekilde bir stored procedure’un tüm var olan veriatablanlarından erişilmesini istiyorsak bunu “sp_” ön eki ile master veritabanında oluşturmamız yeterli olacaktır.

Bu şekilde kullanımda dikkat etmemiz gereken nokta ise veritabanımızı başka bir SQL Server’a restore ettiğimizde master veritabanını da restore etmediğimiz sürece artık bu şekilde oluşturduğumuz stored procedure’lere erişmeyeceğiz.

Belirtilen DSN'de Sürücü ile Uygulama arasında bir mimari uyuşmazlığı var Çözümü

C:\Windows\SysWOW64\odbcad32.exe 64bit işletim sistemlerinde odbc ayarları buradan yapılmakta Odbcnizi Bu yolu İzleyerek Yaparsanız Sorun ortadan Kalkıcaktır.

5 Aralık 2013 Perşembe

Ay Kodu verip Adı döndürmek istemez misiniz?

Ay kodunu verip İsmi dönsün istermisiniz? İşte size gerekli fonksiyon;

SELECT dbo.AytoIsmi('1') AS Isim   işte buda kullanımı.

----------------------------------------------------------------------------- 


Create FUNCTION [dbo].[AyToIsim]
(
@Ay VARCHAR(50)
)
RETURNS VARCHAR(50)
AS
BEGIN
DECLARE @Name VARCHAR(100)

   if @Ay='1'
    BEGIN
     SET @Name='Ocak'
    END
   else if @Ay='2'
    BEGIN
     SET @Name='Şubat'
    END
   else if @Ay='3'
    BEGIN
     SET @Name='Mart'
    END
   else if @Ay='4'
    BEGIN
     SET @Name='Nisan'
    END
   else if @Ay='5'
    BEGIN
     SET @Name='Mayıs'
    END
   else if @Ay='6'
    BEGIN
     SET @Name='Haziran'
    END
   else if @Ay='7'
    BEGIN
     SET @Name='Temmuz'
    END
   else if @Ay='8'
    BEGIN
     SET @Name='Ağustos'
    END
   else if @Ay='9'
    BEGIN
     SET @Name='Eylül'
    END
   else if @Ay='10'
    BEGIN
     SET @Name='Ekim'
    END
   else if @Ay='11'
    BEGIN
     SET @Name='Kasım'
    END
   else if @Ay='12'
    BEGIN
     SET @Name='Aralık'
    END

return @Name

END

24 Eylül 2013 Salı

Crystal Kurulumunda Error 1904 DLL failed to register hatası

Merhabalar;
Crystal Reports kurulumunda eğer " Error 1904. Module C:\Program Files\Common Files\Business Objects\2.7\bin\ExportModeller.dll failed to register.  HRESULT -2147010895. " hatayı alıyorsanız. Çözümü çok basit 
"Microsoft Visual C++ 2005 Redistributable Package (x86)" 

"Microsoft Visual C++ 2005 Redistributable Package (x64)"
kurduğunuzda sorun giderilmiş olacaktır.  


11 Temmuz 2013 Perşembe

Property IsLocked is not available for Login


Property IsLocked is not available for Login '[sa]'. This property may not exist for this object, or may not be retrievable due to insufficient access rights. (Microsoft.SqlServer.Smo)

Sql Server'da yukarıdaki hatayı alırsanız çözümü çok basit bir query ekranı açıp aşağıdaki kodu yapıştırmanız yeterli




alter login sa
with password = 'yourpwd' unlock,
check_policy = off,

check_expiration = off

26 Haziran 2013 Çarşamba

An installation package for the product Microsoft SQL Server Native Client cannot be found.

SQL Server 2005 Express Edition kurarken yada MSDE 2000 den upgrade yaparken, kurulum sırasında aşağıdaki hatayı alabilirsiniz.
An installation package for the product Microsoft SQL Server Native Client cannot be found. Try the installation again using a valid copy of the installation package ‘sqlncli.msi’
Çözüm için Program ekle/kaldır penceresini açıyoruz ve SQL Native Client ‘ı kaldırıp, SQL Express kurulumunu yeniden başlatıyoruz.