2006-12-26

Session

  • Bir nesneyi Session nesnesine aktararak daha sonra erişebiliriz.
  • Session sona erdiğinde Session'a aktarılan nesneler Garbage Collector tarafından ortadan kaldılır. Programlarınızda gerektiğinde manuel olarak ta "GarbageCollector" çağırabilirsiniz.

Konuya Yabancılık

İnsan yabancıyı evine misafir etti mi yabancının yabancılığı kalmaz:)

MSIL

.NET kodları MSIL (Microsoft Intermediate Language) assembly diline dönüştürür.

ATLAS:AlwaysVisibleControl

Atlas ile birlikte gelen AlwaysVisibleControl aracı sayfanın içeriği değiştiğinde, yeniden boyutlanlandığında kaydırma çubukları ile sayfa kaydırıldığında sürekli belirlediğimiz yerde duran bir araçtır. Sayfa yüklenirken flash kontrolüne yakalanmamak için kontrolün pozisyonunu absolutely olarak belirlemeniz gerekir.

Özellikleri:
TargetControlID– Sürekli gösterilecek olan kontrolün ID’si
HorizontalOffset– Browserin yatay kenarından pixel olarak uzaklığı. Varsayılan olarak 0’dır.
HorizontalSide – Yatay olarak browser üzerindeki tarayıcının pozisyonunu belirler (Left, Center, yada Right) Varsayılanı Left’dir.
VerticalOffset– Browserin diket kenarından pixel olarak uzaklığı. Varsayılan olarak 0’dır.
VerticalSide– Dikey olarak browser üzerindeki tarayıcının pozisyonunu belirler (Top, Middle, yada Bottom) Varsayılanı Top’dır.
ScrollEffectDuration– Kontrolün pozisyonunun değiştiğinde scroll efektinin süresinin uzunluğu. Varsayılan olarak 1 saniyedir.

Örnek:
<ajaxToolkit:AlwaysVisibleControlExtender ID="ace" runat="server"
TargetControlID="timer"
VerticalSide="Top"
VerticalOffset="10"
HorizontalSide="Right"
HorizontalOffset="10"
ScrollEffectDuration=".1" />

REPLICATE, STUFF

REPLICATE : Parametre olarak girilen karakter yada karakter dizilerini tekrarlı çoğaltmaya yarar.

Syntax
REPLICATE ( character_expression , integer_expression )

Örnek : REPLICATE('0',100) --100 adet 0 oluşturur.

STUFF : Belli uzunluktarı karakter dizisini silip yerine başka karakter yada karakter dizisi yazmaya yarar.

Syntax
STUFF ( character_expression , start , length , character_expression )

Örnek : STUFF('Mehhh GÜZEL', 4, 2, 'met')
İlk ifadedeki 4 karakterden itibaren 2 karakterin yerine 'met' yazar. Sonuç : 'Mehmet GÜZEL' olur.

2006-12-25

SQL Server Destekleri

Microsoft Vista işletim sistemiyle birlikte MS SQL Server 2000 MSDE(tüm sürümleri), SQL Server 7.0 ve SQL Server 6.5 sürümlerine destek vermeyecek. SQL Server'ın bu sürümlerini kullanan yazılımcı arkadaşların veritabanlarını MS SQL Server 2005 sürümüne; eğer ücretsiz kullanmak istiyorlarsa MS SQL Server 2005 in Express sürümüne yükseltmeleri yararlı olacaktır.

SP ile Tablo Adı Değiştirme

İstersek tablo adlarımızı SP ile de aşağıdaki gibi değiştirebiliriz:
EXEC SP_RENAME 'EskiTabloAdi', 'YeniTabloAdi'

Bir tablodaki alan adını aşağıdaki gibi değiştirebilirsiniz:
EXEC SP_RENAME 'TabloAdi.AlanAdi', 'YeniAlanAdi','COLUMN'


SP müzün sözdizimi:
SP_RENAME [@objname=] 'object_name' , [@newname=] 'new_name'[, [@objtype=] 'object_type']

Veri İşleme Dili(DML)

Amaç: Bu makale ile SQL(Structure of Query Language)'in DML(Data Manuplation Language) komutlarından SELECT deyimini inceleyip, irdelemeye çalışacağız.

Veri işleme dili(kısaca DML) veritabanı içindeki verileri elde etmek, yeni veri eklemek, mevcut verileri değiştirmek ve silmekle ilgili SQL komutlarıdır. Bu deyimler aşağıdaki gibidir:

  • SELECT
  • INSERT
  • UPDATE
  • DELETE


DML verilerin nasıl tutulduğu ile ilgilenmez sadece var olan kayıtları görüntülemek, değiştirmek,silmek ve yeni kayıt eklemek için kullanılır.

Şimdi sırası ile bu komutların ne olduğunu; hangi ifadeler ile birlikte kullanılabileceğini; sonuç olarak ne döndürdüklerini irdelemeye çalışalım.

SELECT KOMUTU:
Bu deyim veritabanından satırları getirme ve bir yada birden çok tablo(table) veyahut view'dan bir yada birden çok satır(row) veya sütun(column)ün seçilmesine izin verir. Kısaca verileri görmenin en sıkı kullanılan yöntemidir.
Genel Yapısı:
SELECT ifadesinin söz diziminin tam şekli oldukça karmaşıktır. Bununla birlikte en çok kullanılan şekli aşağıdaki gibidir:
SELECT [ DISTINCT ] [ TOP sayi TOP sayi PERCENT ] secim_listesi [ INTO yeni_tablo ]
FROM kaynak_tablo
[ WHERE arama_kriterleri ]
[ GROUP BY gruplama_ifadeleri ]
[ HAVING arama_kriterleri ]
[ ORDER BY sıralama_ifadeleri [ ASC DESC ] ]

Merak edenler için SELECT deyiminin tam söz dizimi aşağıdaki gibidir:
SELECT statement ::= <> [ ORDER BY { order_by_expression column_position [ ASC DESC ] } [ ,...n ] ] [ COMPUTE { { AVG COUNT MAX MIN SUM } ( expression ) } [ ,...n ] [ BY expression [ ,...n ] ] ] [ FOR { BROWSE XML { RAW AUTO EXPLICIT } [ , XMLDATA ] [ , ELEMENTS ] [ , BINARY base64 ] } ] [ OPTION ( <> [ ,...n ]) ]
<> ::= { <> ( <> ) } [ UNION [ ALL ] <> ) [...n ] ]
<> ::= SELECT [ ALL DISTINCT ] [ { TOP integer TOP integer PERCENT } [ WITH TIES ] ] <> [ INTO new_table ] [ FROM { <> } [ ,...n ] ] [ WHERE <> ] [ GROUP BY [ ALL ] group_by_expression [ ,...n ] [ WITH { CUBE ROLLUP } ] ] [ HAVING <> ]

Örnek: SELECT * FROM GIDER ile Gider tablomuzdaki tüm kayıtları görüntüleyebiliriz. Burda *(asteriks) ile tüm alanları gösteriyoruz. Gider tablomuzdaki Kod ve Aciklama alanları vardı. Yukarıdaki ifade yerine
SELECT Kod, Aciklama FROM GIDER
ifadesi ile de aynı şeyleri görüntüleyebiliriz. Tablomuzdaki veriler aşağıdaki gibi olsun.



SELECT ifadesi istenilen tablodan istenildiği kadar alan seçilebilir. Örneğin sadece Gider Açıklamlarına ihtiyacımız olsaydı bunu için yazacağımız SQL kodu aşağıdaki gibi olurdu:
SELECT Aciklama FROM GIDER

Yeri gelmişken FROM ifadesinin niçin kullanıldığını açıklayayım. FROM ile hangi tablo yada tablolardan verilerimizi çekeceğimizi belirliyoruz.

Bir tablo içerisinde belirli kayıtları ararken aşağıdaki arama operatörlerinden faydalanırız:
  1. Karşılaştırma Operatörleri : =, <>, !=, <, >, >=, <=, !>, !<
  2. Aralık belirtme : BETWEEN, NOT BETWEEN
  3. Liste içerisinde : IN, NOT IN
  4. String benzerliği : LIKE , NOT LIKE
  5. Bilinmeyen Değerler : IS NULL, IS NOT NULL
  6. Oluşsuzlaştırma : NOT

VERİLERİ SIRALAMAK(ORDER BY):

Seçilen veriler istenilirse sıralanabilir. Sıralama bir yada birden çok alana göre yapılabilir. Sıralama ASC artan yada DESC azalan sırada yapılabilir. Alanlar arasına hernagi bir şey yazılmadığı zaman default ASC'dir. Hatırlatmakta yarar var: Bir sorgu içerisinde sıralama birden çok alana göre artan aynı şekilde birden çok alana göre de azalan olabilir.

Örnek: PERSONEL tablosunu Adi ve Soyadi artan, maaşı azalan olacak şekilde görüntüleyelim:

SELECT * FROM PERSONEL
ORDER BY ADI, SOYADI ASC, MAAS DESC

2006-12-22

Zulmü Alkışlayamam

Zulmü alkışlayamam, zalimi asla sevemem;
Gelenin keyfi için geçmişe kalkıp sövemem.
Biri ecdadıma saldırdımı, hatta boğarım!...
-Boğamazsın ki!
-Hiçolmazsa yanımdan kovarım.
Üçbuçuk soysuzun ardından zağarlık yapamam;
Hele hak namına haksızlığa ölsem tapamam.
Doğduğumdan beridir, aşığım istiklale;
Bana hiç tasmalık etmiş değil altın lale!
Yumuşak başlı isem, kim dedi uysal koyunum
Kesilir belki, fakat çekmeye gelmez boyunum!
Kanayan bir yara gördümmü yanar ta ciğerim,
Onu dindirmek için kamçı yerim, çifte yerim!
Adam aldırmada geç git, diyemem aldırırım.
Çiğnerim, çiğnenirim, hakkı tutar kaldırırım!
Zalimin hasmıyım amma severim mazlumu...
İrticanın şu sizin lehçede ma'nası bu mu?

Mehmet Akif Ersoy

Veritabanı Yedekleme

MS SQL Server'da veritabanını aşağıdaki T-SQL kodları ile yedekleyebilirsiniz:

BACKUP DATABASE VeriTabaniAdi TO DISK = N'YedeklenecekPath' WITH INIT , NOUNLOAD , NAME = N'STP backup', NOSKIP , STATS = 10, NOFORMAT

2006-12-21

Kariyer.net'te Güvenlik

Kariyer.net'te login olup ilanlara bakıyorsunuz. Bir de bakıyorsunuz arkadaşınızın özelliklerine uyan bir ilan var. Onun linkini kopyalayıp arkadaşa göndereyim demeyin. Gönderdiğiniz kişi tüm bilgilerinizi görüp, güncelleyip, silebilir. En azından bu bug giderilene kadar tavsiye et ile ilanları gönderiniz.

Teknik olarak her üye için sabit ARN kodu aşağıdaki gibi ekleniyor.

http://web7.kariyer.net/JobSearch/jobdetail.kariyer?arn=XXXXX

İlan sayfasında bu kod olduğu sürece siteye link üzerinden giren kişinin yetkili olup olmadığı kontrol edilmiyor. Bu da güvenlik açığına sebep oluyor.

Güvenlik açığını Kariyer.net'in destek birimlerine ulaştırdım. Umarım bir an önce bu açığı giderip üyeleri rahatlatırlar.

.::YASAL UYARI::.

©2004-2024 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.