Kategori : SQL

Jul 18 2009

MSSQL 2005 Sistem Tabloları Haritası

İlginenenler için oldukça güzel ve detalı bir çalışma...

http://www.microsoft.com/downloads/details.aspx?familyid=2ec9e842-40be-4321-9b56-92fd3860fb32&displaylang=en

bu sayfa üzerinden download yapabilirsiniz.

0 yorum - Gönderen : Mahmut Er (12:27 AM) - Kategori : SQL | TSQL

Jul 17 2009

MSQL ile Ayın Son Gününü Son Saati ile almak.

Örneğin bu aya kadar kaydedilmiş  kayıtlara bakacaksınız bunun için saat ve dakikayıda dikkate almanız gerekir,

SELECT

 

DATEADD(ms, -5, DATEADD(mm, DATEDIFF(m, 0, GETDATE()) + 1, 0))

kodu bize

2009-07-31 23:59:59.993

gibi bir değer gönderir...İlginç date kullanımı ancak işe yarayacağını düşünüyorum. :)

0 yorum - Gönderen : Mahmut Er (12:21 AM) - Kategori : SQL

Jul 15 2009

TSQL ile PAGING

Daha önce MSSQL de paging neden ve nasıl yapılır diye bir içerik yayınlamıştım,okumayanlar ve bilmeyenler için bir kez daha söyleyeyim,database üzerinde paging yaparak verileri çekmek performans açısından sonra derece faydalıdır,zira çok büyük tablolarla çalışan yerlerde gösterilmek istenen kayır sayısı ne olursa olsun,10-20-50-100-200 herneyse bu kadar kayıtı göstermek için biz her seferinde tablomuzda kaç tane kayıt varsa hepsini çekeriz,dolayısı ile bize query olarak dönen structure'un boyutuda olması gerekenden çok fazla olur,sadece 20 kayıt göstereceksiniz diyelim,queryinizden 100 000 kayıt geliyor,bu hem database'i hemde programımızı gereksiz olarak yorar.Bunu engellemek için bu paging yani sayfalama dahada açıkcası sadece göstermek istediğimiz kadar veri çekme işini databasede halletmemiz performans açısından en doğru olanıdır.Dediğim gibi bununla ilgili bir içerik yayınlamıştım bu seferde bunu TSQL kullanarak nasıl yaparız onu paylaşmak istedim,dilerseniz bu kodu çok kullandığını tablolarınız için procedure halinede getirebilirsiniz.

Devamı ...

0 yorum - Gönderen : Mahmut Er (11:17 PM) - Kategori : SQL | TSQL

Jul 8 2009

ColdFusion MX ve MySQL 4.1 Kurulumu

Bildiğimiz gibi Coldfusion MySQL ile çalışabilmekte ve bu durum da ColdFusion dökümanlarında yer almakta. Ancak belirtilmeyen bir durum ise hangi sürüm MySQL desteğinin olduğu ve farklı sürümlerde ne gibi durumlar yaşandığı.

Blog kurulumu sırasında veritabanı ihtiyaçlarımı karşılamak üzere MySQL 4.1 kurulumu gerçekleştirip ColdFusion ile bağlantı kurmak istediğimde ufak bazı dikkat edilecek noktaların olduğunu gördüm ve sizlerle burda paylaşmak istedim.

Öncelikle neden MySQL sorusuna kısa bir yanıt olarak MySQL'in ücretsiz ve hızlı olması diyebilirim. Bugüne kadar kullanmama nedeni olarak da Unicode desteğinin olmaması ve geliştirdiğin çok dilli projelerde sorunla karşılaşıyor olmam var idi. Ancak MySQL 4.1 sürümü ile birlikte Unicode desteği doğrudan sunulmuş durumda ve bu duruma sanırım en çok sevinenlerden birisi de ben oldum. Gerçi Unicode destekli ve yine ücretsiz olan PostgreSQL veritabanını daha önce bazı projelerde kullanmış olsam da, gerek MS SQL çözümünün var olması gerekse de çözüm üretimi aşamasında kullanılması gerekli olabilen Windows platformunda doğrudan bir PostgreSQL desteğinin olmamasını söyleyebilirim. Artık tamamı ile Unicode destekli ve ücretsiz MySQL sürümü var ve veritabanı ihtiyaçları için farklı bir çözüme gerek kalmadığını söylemek yanlış olmayacaktır.

- ColdFusion MX J2EE standartlarından bir sunucu olması gereği herhangi bir veritabanı ile haberleşmek istediğinde JDBC kütüphanelerini kullanabilmekte. MySQL bağlantısı gerçekleştirmek için de JDBC standartlarını kullanabiliyoruz.

MySQL Connector/J olarak adlandırılan JDBC eklentilerini temin edip açtığımızda karşımıza çıkacak olan dosyalar içerisinden "mysql-connector-java-3.0.16-ga-bin.jar" şeklinde olan dosyayı alıp, normal ColdFusion kurulumu için "$CFMX_HOME/runtime/servers/lib/", JRun destekli ColdFusion kurulumu yada JRun için "$JRUN_HOME/servers/lib/" dizinine kopyalamamız gerekmekte. Yada daha genel olarak "$CFMX_HOME/WEB-INF/lib/" dizinine kopyalamak da yeterli olacaktır.

- Bu kopyalama işlemi sonrası ColdFusion sunucuyu yeniden başlatıyoruz.

- Sonra ColdFusion yönetici sayfasını yeni bir veritabanı eklemek için açıyoruz.

- Veritabanı ekleme sırasında veritabanı tipi olarak "other" seçeneğini seçiyoruz.

CFAdmin - MySQL

- JDBC URL alanı için "jdbc:mysql://[sunucu]:[port]/[veritabanıadı]" olarak belirtiyoruz.

- Driver Class alanı için "com.mysql.jdbc.Driver" olarak belirtiyoruz ve veritabanı kaydını gerçekleştiriyoruz.

CFAdmin - MySQL

Bu işlem sonrası ColdFusion sunucusu sorunsuz bir şekilde MySQL veritabanı ile anlaşacaktır.

Yeni veritabanımız hayırlı olsun. :)

0 yorum - Gönderen : Oğuz Demirkapı (9:51 AM) - Kategori : Coldfusion | SQL

Jul 8 2009

ColdFusion MX ve PostgreSQL 8 Kurulumu

ColdFusion MX her ne kadar doğrudan bir destek sunmasa da PostgreSQL ile sorunsuz bir şekilde çalışabilmekte. Ancak PostgreSQL 8 sürümünün duyrulması ile sunulan Windows tabanlı PostgreSQL veritabanı sunucusu, *nix dünyasında olduğu gibi Windows kullanıcıları için de ciddi bir alternatif oluşturacak gibi görünmekte.

Biz de tam bu duyrum sonrası PostgreSQL 8 ile ColdFusion MX kurulumunun nasıl olabileceğinden bahsedelim.

Öncelikle PostgreSQL 8 kurulumunu gerçekleştirmek gerekmekte. Kurulum sırasında PostgreSQL için bir kullanıcı yaratılması ve bu kullanıcının daha sonra ColdFusion tanımlarında kullanılacağını unutmamak gerekiyor. Kurulum sırasında da özellikle JDBC sürücülerini aktif olarak seçmek gerekmekte.

Daha sonra ColdFusion MX ile PostgreSQL arasındaki bağlantıyı kuracak olan JDBC bağlantısını gerçekleştirmek gerekmekte. PostgreSQL kurulumu sonrası ana dizin (C:\Program Files\PostgreSQL\8.0) altında bulunan "JDBC" dizini içerisine gerekli dosyalar yaratılmakta. Bu JAR dosyalarını ColdFusion tarafından tanınması iki yöntemle olanaklı. Ya bu dosyaları "$CFMX_HOME/WEB-INF/lib/" dizinine kopyalamak yada ColdFusion yönetici sayfalarında "Java and JVM Settings" bölümünde bu dosyaların olduğu alanı "ColdFusion Class Path" bölümüne eklemek. Tabi bu işlemlerden sonra ColdFusion sunucunun yeniden başlatılması gerekmekte.

Daha sonra ColdFusion yönetici sayfalarında yeni veritabanı eklemek için "other" alternatifini seçiyoruz.

PostgreSQL

JDBC alanı için "jdbc:postgresql://[sunucu]:[port]/[veritabanıadı]", "driver class" alanı için "org.postgresql.Driver" olarak belirtiyoruz ve veritabanı kaydını gerçekleştiriyoruz.

PostgreSQL

Bu işlem sonrası ColdFusion sunucusu sorunsuz bir şekilde PostgreSQL veritabanı ile sorunsuz şekilde çalışacaktır.

Genel olarak kurulum adımları benzer olmasına karşın *nix tabanına özgü kurulum için de dikkat edilecek noktaları ayrıca belirteceğimi de hatırlatmak isterim.

0 yorum - Gönderen : Oğuz Demirkapı (9:44 AM) - Kategori : Coldfusion | SQL

Jul 8 2009

Unicode Destekli Access Veritabanı İle Kodlamada Dikkat

ColdFusion ile çalışırken veritabanı çözümü olarak MS Access seçilmiş ise dikkat edilecek önemli bir ayrıntıyı tekrar hatırlatmak istedim.

6 Aralık 2003 tarihli blog kaydını sizlere tekrar iletiyorum.

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

Bir süre önce yaptığım bir projenin ColdFusion MX 6.1 güncellemesi sonrasında hata çıkardığına dair bir mail aldım. Proje geliştirilme aşamasında ColdFusion 5 ve Access kullanılmış idi. Ancak projenin ColdFusion MX 6.1 sunucuya taşınmasından sonra sorguların sonuçları hatalı olarak boş gelmekte idi. Sorunun nedenini incelerken normal Access sürücüsü ve unicode destekli Access sürücüyü denediğimde, normal olanda çalışmakta ancak unicode destekli sürücü ile sorun oluşmakta idi.

Sorunun nedeninin sorgularda kullanılan karşılaştırmalar sırasında "boolean" olan alanlar için kullanılan tanımdan kaynaklandığını buldum ve sorguları değiştirerek sorunu hallettim.

Sorgularda;

WHERE urunler.isaktif = 1

yerine

WHERE urunler.isaktif = TRUE

kullanarak soruna neden olan durumu ortadan kaldırabiliyoruz.

Yada daha genel bir çözüm olarak aşağıdaki yazımı kullanabiliriz.

WHERE urunler.isaktif = <cfqueryparam cfsqltype="CF_SQL_BIT" value="1">

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

O günlerde ColdFusion MX 6.x için belirttiğim durum ColdFusion MX 7 için de geçerliliğini korumakta. Durum Macromedia'dan çok Macromedia'nın Access veritabanlarına ulaşmak üzere kullandığı JDBC bağlantı yazılımını üreten DataDirect sürücülerinden kaynaklanmakta.

0 yorum - Gönderen : Oğuz Demirkapı (9:42 AM) - Kategori : Coldfusion | SQL

Jul 8 2009

ColdFusion & Access & Unicode

ColdFusion MX ilk çıktığı zamanlar MS Access ile çalışırken Unicode uyumsuzluğu bulunmaktaydı. "RedSky (6.1)" sürümü ile eklenen yeni bir sürücü ile Access veritabanı için doğrudan Unicode desteğı sunularak sorun halledildi.

Ancak var olan sürücü ile yine de hala bazı sorunlar oluşabilmekte. Örnek olarak yine bu alanda belirttiğim "boolean" veriler için 1 ve 0 yerine doğrudan "True" yada "False" kullanmak gerekmekte.

Bu tarz ufak sorunlara genel bir çözüm için Macromedia bir "Technote" yayınlamış durumda.

http://www.macromedia.com/go/2d2a7a19 adresi ile ilgili dökümana ulaşıp, anlatılan yöntem ile "jadoZoom" JDBC sürücüsünü kurarak bu tarz ufak sorunlara çözüm bulunabilir.

0 yorum - Gönderen : Oğuz Demirkapı (9:39 AM) - Kategori : Coldfusion | SQL