2007-01-09

VT Nesneleri

Veritabanı nesneleri hakkında bilgi almak için sp_help i kullanabilirsiniz. Nesne hakkındaki bu bilgiler nesneyi oluşturan kişi, tipi, oluşturulma tarihi, içerdiği alanların veri tipi, verilerin uzunluğu, NULL olup olamayacağı(table, view vs için) vs hakkında bilgi verir.

EXEC sp_help @NesneAdi şeklinde kullanılır.

Örnek: EXEC sp_help V_ODEME --V_ODEME View'ımız hakkında detaylı bilgi verir.

Trigger Adları

/*
Veritabanınızdaki tüm Triggerların adlarının listesini aşağıdaki kodla alabilirsiniz:
*/

SELECT name
FROM sysobjects
WHERE xtype = 'TR'
ORDER BY name

SP Ad ve İçerikleri

/*
SQL Server'daki tüm SP 'lerin ad, id ve içeriklerini(text) veren SP miz aşağıdaki gibidir:
*/

SELECT sysobjects.name, sysobjects.id, syscomments.text
FROM syscomments INNER JOIN sysobjects ON syscomments.id = sysobjects.id
WHERE (sysobjects.xtype = 'P')

/*
Not: Bu SP yi kullanarak aradığınız kelimeleri içeren SP leri listeleyebilirsiniz.
*/

Tablo ve View Adları

/*
Veritabanınızadaki tablo(U) ve View(V) adlarını aşağıdaki SQL ile alabilirsiniz:
*/

SELECT * FROM sysobjects
WHERE (xtype = 'U') OR (xtype = 'V')

Encrypted Trigger Adları

/*
Sadece encrypted olan trigger adlarını aşağıdaki şekilde bulabilirsiniz:
*/

SELECT sysobjects.name
FROM syscomments INNER JOIN sysobjects ON syscomments.id = sysobjects.id
WHERE (sysobjects.xtype = 'TR') AND (syscomments.encrypted=1)

/*
Not: sysobjects.xtype ni 'SP' yaparak encrypted SP lere; 'V' yaparak encrypted viewlara ulaşabilirsiniz.
*/

Kullanıcı Hakları

Bir kullanıcının hangi veritabanı üzerinde hangi haklarının olduğunu master veritabanı üzerinde bulunan syslogins tablosundan alabiliriz. Aşağıdaki SQL ile tüm bu bilgileri görebilirsiniz:

SELECT * FROM master.dbo.syslogins

Tablo yapısı:

ColumnNameDataType Description
sidvarbinary(85)Security identifier.
statussmallintFor internal use only.
createdatedatetimeDate the login was added.
updatedatedatetimeDate the login was updated.
accdatedatetimeFor internal use only.
totcpuintFor internal use only.
totiointFor internal use only.
spacelimitintFor internal use only.
timelimitintFor internal use only.
resultlimitintFor internal use only.
namevarchar(30)Login ID of the user.
dbnamenvarchar(128)Name of the user's default database when connection is established.
passwordnvarchar(128)Encrypted password of the user (may be NULL).
languagenvarchar(128)User's default language.
denyloginint1, if login is a Microsoft® Windows NT® user or group and has been denied access.
hasaccessint1, if login has been granted access to the server.
isntnameint1 if login is a Windows NT user or group; 0 if the login is a Microsoft SQL Server™ login.
isntgroupint1, if login is a Windows NT group.
isntuserint1, if login is a Windows NT user.
sysadminint1, if login is a member of the sysadmin server role.
securityadminint1, if login is a member of the securityadmin server role.
serveradminint1, if login is a member of the serveradmin fixed server role.
setupadminint1, if login is a member of the setupadmin fixed server role.
processadminint1, if login is a member of the processadmin fixed server role.
diskadminint1, if login is a member of the diskadmin fixed server role.
dbcreatorint1, if login is a member of the dbcreator fixed server role.
loginnamenvarchar(128)Actual name of the login, which may be different from the login name used by SQL Server.

2007-01-07

Ajax'a Giriş

AJAX(Asynchronous JavaScript And XML), İnternet sayfalarında JavaScript ve XMLHttpRequest kullanımı ile etkileşimli uygulamalar yaratan tekniğin adıdır. Ajax, ne bir dil, ne de bir kütüphanedir. Ajax, sadece bir yöntemin adıdır. Ajax ile sayfalarımızı post etmeden sadece sayfanın belirli bir kısmınında istediğimiz değişikliği yapmamıza izin veriyor. Ajax, hem web trafiğini azaltır, hem de hızı artırmaktadır.

AJAX'ın kullandığı teknolojiler:
  • HTML/CSS
  • DOM/JavaScript
  • XML/XSLT/XMLHttpRequest

Tarihi : 1997 yılından beri kullanılıyor. Asenkronize yöntemlerin ilk örneği XMLHttpRequest ortaya çıkmadan Microsoft tarafından yapılan ve Java applet benzeri bir yapı kullanan Remote Scripting'dir. 2002'de özgür yazılım değişikliğiyle AJAX ortaya çıktı.2003'te de bu teknoloji ASP.Net'e de eklendi.

Avantajları:

  • Uygulamalar kullanıcının bilgisayarında çalıştığı için network performansı etkilenmez.
  • Sunucu daha çok kullanıcıya cevap verebilir çünkü kullanıcı başına daha az istek cevaplamak zorunda kalır.
  • Sunucu işlemciyi daha az kullanır.
  • Tamamen HTML kullanan yapılara oranla ağ daha az kullanılır.
  • Taşınabilirlik.

Dezavantajları/Zorlukları:

  • Browser'daki geri tuşunun içeriğinin Ajax ile tutulması mümkün değil.
  • Tarayıcıya göre farklı DOM tanımlamak gerekir.
  • İyi seviyedeki JavaScript bilgisi gerektirir.
  • İyi seviyede DHTML bilmek gerekir.

2007-01-04

Tarih Farkı

/*
İki Tarih Arasindaki Farkı gün, saat ve dakika cinsinden bulur.
*/

CREATE PROCEDURE TarihFarki
@start AS SMALLDATETIME,
@end AS SMALLDATETIME

AS

DECLARE @sure BIGINT
DECLARE @dakika INT
DECLARE @saat INT
DECLARE @gun INT
DECLARE @MSG AS VARCHAR(64)

SET @gun=0
SET @sure=DATEDIFF(MINUTE,@start, @end)

IF (@sure>=1440)
BEGIN
SET @gun=CAST((@sure/1440) AS INT)
SET @sure=@sure-@gun*1440
END
SET @dakika=@sure%60
SET @saat=CAST((@sure/60) AS INT)
SET @MSG='İki tarih arasındaki fark ' + CAST(@gun AS VARCHAR(5)) +' gün ' + CAST(@saat AS VARCHAR(5)) + ' saat ' + cast(@dakika AS VARCHAR(5)) + ' dakika'

SELECT @MSG

2007-01-03

User Defined Function


/*
Mevcut SQL fonksiyonları bize yetmediğinde kendi fonksiyonlarımızı yazarız. İhtiyaç duyduğunuz herhangi bir durum ve anda kullanabilirsiniz.

SP'lerin parametrelere değer atabilmelerine ve veri kümesi üretebilmelerine karşın fonksiyonlar hem değer döndürürler, hem SQL kodlarından kayıt kümesi üretirler, hem de içeride yeni bir kayıt kümesini geçici olarak oluşturup istemciye gönderebilirler. Bununla birlikte SP'ler fonksiyonların aksine bir değişkeni içeride değiştirip geri gönderebilirler.


Bir User Defined Function syntaxı aşağıdaki gibidir:
*/

/*
CREATE Fonksiyon_Adi(Giris_Parametreleri)
RETURNS Donus_Degeri
[WITH ]
AS
BEGIN
Fonksiyonun_Govdesi
RETURN Donus_Deyimi
END




Örnek vermek gerekirse Tarih bilgisindeki ayiraçlari istediğimiz gibi yapmak için aşağıdaki fonksiyonu kullanabiliriz:
*/

CREATE FUNCTION TarihFormati (@Tarih datetime, @Ayirac char(1))
RETURNS varchar(20)
AS
BEGIN
RETURN CONVERT(varchar(20),datepart(dd,@Tarih)) + @Ayirac + CONVERT(varchar(20),datepart(mm,@Tarih)) + @Ayirac + CONVERT(varchar(20),datepart(yy,@Tarih))
END




--Fonksiyonu oluşturduktan sonra aşağıdaki ifade ile sonucunu görebilirsiniz:
SELECTdbo.TarihFormati(GETDATE(),':')




/*
Sonuç: 9:1:2005 olur.
Fonsiyonu her yerden kullanabilirsiniz.Burda unutmamanız gereken nokta çağırdığınız yerde fonksiyonun owner ını yazmanız gerektiği. Yukarıda görüldüğü gibi ben dbo kullandım.
*/

.::YASAL UYARI::.

©2004-2023 Mehmet GÜZEL, www.mehmetguzel.net

Site içeriği kaynak gösterilmek koşuluyla yayınlanabilir. Yazılan yazı ve yorumlar sadece yazı ve yorum sahiplerini bağlar.