![]() |
![]() |
![]() | #1 | |
Çevrimdışı ![]() IF Ticaret Sayısı: (0) | SQL VE TQUERY Dev Arşiv... SQL VE TQUERY BÖLÜM 1 1.1 - Giriş Bu makalede, Structured Query Language' in önemini programcılık yapacak kişilerin veya programlama dilleriyle uğraşan kişilerin kavramasına yardımcı olmak ve özellikle Delphi' de piyasada bulunan büyük bir açığı kapatmak hedeflenmiştir. Burada aynı zamanda şu sorulara da cevap aranmaya çalışılmıştır. TQuery nesnesinin özellikleri nasıl kullanılır ve ne gibi etkileri vardır ? Programlama aşamasında karşılaşılabilecek hatalar nelerdir? Metot ne demektir. Metotların kullanımı nasıl olmaktadır ? Hangi metotlar ne zaman kullanılmalıdır ? Günümüz bilişim dünyası hızla gelişmekte, şirketler ve kurumlar arası dolaşan bilgi trafiği hızla artmaktadır. İşte bu trafiğe ve yığılan dosyaların imdadına bilgisayarlar yetişti. Yüksek veri depolama ve hız haftalar, aylar alan işlemleri saatlere düşürdü. Şirketlerin veri saklama ve bu veriler içi işlemlerin yükünden kurtulmaları bu yüksek hız ile birlikte sağlam veri tabanları ve bu veri tabanlarının optimum kullanımını gerektirmektedir. Veriler artık insanlar için çok değerlidirler ve iyi korunmaları, istenildiğinde istenilen bilgiye ulaşılabilmesi gerekmektedir. Milyonlarca veri, binlerce,on binlerce kayıt arasından sizin ihtiyaçlarınıza ve isteklerinize uyan bilgilerin en kısa zamanda ve yüksek güvenilirlik ve geçerlilikle size sunulması gerekmektedir. 1992 yılında Sicurello, F.; Villa, M. Ce İstanbul'da yapılan konferansta 'System to manage a clinical data base on aids' başlığıyla sorguların önemi üzerinde durulmuş ve şöyle denmiştir : "...sorgular önemlidir çünkü bunlar bize daha önceden kaydedilmiş bilgileri hızlı bulabilmemizi sağlarlar. Ve bunları işleyebilir, seçilen verileri yazıcıdan çıkartabiliriz, laboratuar testleri ve grafikleri kolayca elde edebiliriz..." Veri raporlama , istenilen verilerin bulunması insanlar için vazgeçilemez bir konuma gelmiştir. Burada yapılacak bir hata veya gözden kaçırılacak bir nokta çok önemli zararlara yol açabilmektedir. Bu amaçlara yönelik olarak Structured Query Language (Yapısal Sorgu Dili) oluşturulmuştur. Sorgulama her dilde profesyonel program yapan programcılarca kullanılmaktadır. Visual Basic'te MsQuery , Oracle 'da PL/SQL kullanımı gibi. Bugün , veri tabanlarını kullanan her yazlımın ya da kullanıcının mutlaka SQL ile karşı karşıya gelmesi zorunlu olmaktadır. SQL'in kullanım şekli diller arasında pek fazla fark etmemekle birlikte yine de bazı yazım farklılıkları mevcuttur. SQL'in programcılıktaki önemli yerini Ruhver Barengi 1998 de yazmış olduğu kitabında şu şekilde ifade etmiştir "SQL Delphi' nin değil veri tabanlarının kendilerinin kullandığı bir dildir. Ancak Delphi sayesinde SQL cümleciklerini , veri tabanına göndermek ve veri tabanının verdiği yanıtları alarak işlemek mümkün olmaktadır. Uygulamalarda veri tabanlarını ve SQL cümleciklerini kullanmak çok verimli programlar üretmemize yardımcı olacaktır. Delphi' de SQL cümleciklerini veri tabanına göndermek için Tquery bileşenleri kullanılır." Problem; veri tabanı uygulamalarında, veri tanımlama, veri bütünlüğünün kontrolü, veri tabanlarına erişimin kontrolü ve veri tabanlarının sorgulanması ve güncellenmesi amaçları için gerekli komutlara sahip bir alt dildir. (sub language). Alt dil denmesinin nedeni: bir bilgisayar dilinin sahip olması gereken tüm komutlara sahip olmayışıdır. SQL ilişkisel veri tabanındaki veriye erişim için kullanılan komut gruplarıdır. Bu makalede SQL'in Oracle' daki kullanım şekillerine de yer verilmekle birlikte asıl olarak Delphi' deki kullanımına değinilecek ve asıl sorgu nesnesi olan TQuery incelenecektir. TQuery nesnesinin özellikleri ve metotları ayrıntılı olarak anlatılacak ve çeşitli kısa program örnekleriyle konu pekiştirilmeye çalışılacaktır. Hızlı ve etkili bir program yazabilmek için hem SQL mantığını hem de bunun Delphi' deki kullanımını iyi bilmek gerekir. Delphi bu konuda çok fazla özelliğe sahip olup bütün bunların incelenmesi ve anlaşılması, konu hakkındaki kaynakların hep İngilizce olması ve herkesin ingilizce seviyesinin bunları okuyup anlayabilecek seviyede olmaması nedeniyle konunun öğrenilmesini zorlaştırmaktadır. 66 özelliği ,97 metodu ve olaylarıyla çok karmaşık olan TQuery nesnesinin var olan tüm özelliklerini ve kullanım şekillerini bilmeden program yazmaya kalkmak elinde ne tür silahları olduğunu ve bu silahların gücünü, kapasitesini bilmeyen bir devletin savaşa girmesine benzer. Tabii ki bu devletin savaşı kazanması düşünülemez. Bir programcının da makalede verilen bilgilere sahip olmadan veri tabanı programı yazmaya kalkması yukarıdaki örnekteki gibi fiyaskoyla sonuçlanacaktır. Yukarıda belirttiğim nedenlerle birlikte profesyonel bir program yazabilmek için SQL mantığı ve bilgisiyle birlikte TQuery nesnesinin öğrenilmesi zorunlu olmaktadır. 1.2 - BAZI TANIM VE KISALTMALAR TANIM AÇIKLAMAAlias:Takma ad .Database konfigürasyon bilgisini özel bir veri tabanına bağlanmak için gerekli bilgiyi içerir. InterBase, dBase gibi.Alt sorgu:Sorgu içerisinde başka bir veri tabanından sorgulaya- rak veri alan bölüme denir.Blob:Resim dosyasının veri tabanındaki türü.Boolean:Mantıksal değer. True veya False değerlerini alır.Buffer:Tampon bellektir.Cache:Ön bellektir. Çok hızlı olması sebebiyle tercih edilir.CaseSensitive:Büyük küçük harf ayrımı yapması. A<>aClient:İstemci veya terminal olark ifade edilir.Component:Görsel geliştirme dillerinde kullanılan nesnel öğelere denir .Dataset:Tablo , veri tabanı bağlantısını belirtir.Deplhi'de temel veri tabanı sınıfıdır.DataSource:Veri tabanı veri bilinçli bileşeni. TTable, TQuery vb.. nesneler ile veri bilinçli nesnelerde gösterilecek veri için aracılık yapar.Event:Nesnelerle ilgili herhangi bir durumda meydana gelen olaylar. OnChange, OnExit gibi.Index:Belli bir alan dizisine göre çeşitli formatlarda sıralama.Join:Farklı tablolardan farklı alan verilerin alınıp birleştirilmesi.Keyfield:Anahtar alan.Master- Detail:Ana veri ve buna bağlı detay veri ilişkisiParametre:Yöntemlere (Procedure, Fonksiyon) değer göndermek ve almak için kullanılan değişkenlerPartialKey:Arama işleminde kısmi değer bildirimiPrimary Key:Birincil anahtar alanıRemote Server:Uzak sunucuServer:SunucuSession:OturumChild Obje:Çocuk nesneQuery:Sorgu.Belli kriterlere uyan veri kümesini elde etmeHost:SunucuProtokol:Yerel ve uzak uygulamalar arasında ver alış verişinde kullanılan ortak dilDML:Data Manipulation Language - Veri İşleme Dili-R-:Read Only - Salt Okunur[]:Tercihe bağlı kullanılacak parametre, özellik, değerleri göstermek için kullanılıyor.BDE:Borland Database Engine - Borland Veri Tabanı Motoru BÖLÜM 22.1- SQL 'in Yapısı ve Gelişimi Yapısal sorgu dili (SQL) sunucusu veri kümeleri üzerinde matematiksel ilişkiler gerçekleştiren veri tabanı motorudur. Burada verinin nasıl bulunduğunu anlatmaya gerek yoktur. Veriyi almak için sadece SQL e başvurmak yeter. SQL, 1974 te icat edilmesine rağmen 1986 yılına kadar bir standart haline gelmedi. Bu arada bir çok geliştirmeci bunun üzerine ilişkisel veri tabanı sistemleri geliştirdiler. Bu desteklere rağmen bunlar yeterince uygun olmadı çünkü: ofissel bir standart ortaya konmadan geliştirilmişlerdi. SQL 'in ilk başlangıcı ilişkisel veri tabanı modelinin kuramını ortaya koyan , E Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. . Codd' un 'A relational model for large shared data banks " adlı makalesine dayandırmak olasıdır. Daha sonra IBM tarafından Structured English Query Language (SEQUEL) tanımlanmıştır. İlk SQL standardı ISO tarafından 1987'de ISO 9075 kodu ile yayınlanmıştır.Bu dilin standart bir dil olması hızla yaygınlaşmasını sağlamıştır. Ayrıca ANSI versiyonu ise , teknik olarak ISO 9075 ile tamamı aynı nitelikte olup 1986' da X3.135 kodu ile yayınlanmıştır. ISO ,1989'da 'bütünlük artırımı özelliğini' (integrity enhancement feature) ekleyerek ISO 9076 kodu ile yayınlamıştır. Ayrıca ANSI , gömülü (embedded) SQL dilleri ile ilişkili standartları da içeren X3.168 standardını yayınlamıştır. Standartlar üzerindeki çalışmalar ve eklemeler halen sürmektedir.Standart SQL komutları ile çalışmanın doğal olarak uygulamaların çeşitli heterojen ortamlar arasında taşınabilirliği (portability), açık sistem mimarisini destekleme gibi çeşitli açılardan büyük yararları vardır.Bütün bunlarla birlikte SQL 'deki eksiklikler geliştirmecileri bu konudaki yeni eklemelere ve gelişmelere mecbur kılmıştır. SQL lokal ve uzak veri tabanı mimarilerini desteklemektedir. 2.2- LOKAL SQL Local SQL tam yol ve dosya ismi yazmanıza izin verir. Select from 'Parca.DBF' ifadesi ile Select from "C:\ORNEK\PARCA.DBF" ifadesinin yazımında ikisi de doğrudur. Bunlar yerine BDE Alias (takma adlar) da kullanılabilir. Örneğin Select from " Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. DDX:Table1" NOT: Yerel tablo ismini yazmazsanız BDE Configuration Utility 'deki belirlenen tipi kabul eder. Bu tip tablolar ile Query nesneleri ile ilişkilendirilen standart takma adlar için olan varsayılan sürücü tipindedir. Sütunlar Local SQL Paradox' un çoklu kelimeli sütun isimlerini ve SQL anahtar kelimelerinin uzunluğunun iki katını desteklemektedir. Bu SQL anahtar kelimeleri şunlardır. • Tek veya çift tırnak içinde yazılanlar • SQL tablo ismi ile başlayan veya tablo ile ilişkili isimler Örnek: Select M."Mus_no" from Musteri Tarihler Local SQL tarihlerin U.S formatında da olduğu gibi MM/DD/YY (ay/gün/yıl) olarak girilmesini bekler.Uluslar arası tarih formatını desteklemez. Veri İşleme Bazı sınırlamalarla birlikte Local SQL aşağıdaki ifadeleri desteklemektedir. Select : Var olan veriyi açmak için Insert : Tabloya yeni bir veri eklemek için Update : Var olan veriyi düzeltmek için Delete : Tablodan veriyi silmek için Aşağıdaki bölümler Local SQL DML ifadeleri için kullanılabilen fonksiyonları tarif eder. • DML ifadelerindeki parametre alt durumları • Toplam fonksiyonları • String fonksiyonları • Tarih (date) fonksiyonları • Operatörler • Güncellenebilen sorgular SQL İfade ve Deyimleri A) Select Select ifadesi bir veya daha fazla tablodan veri getirmek için kullanılır. Çoklu tablolardan veri işini yapan Select ifadelerine "Join" (birleştirme) denir. Local SQL Select İfadelerinin aşağıdaki şekillerini desteklemektedir. SELECT [DISTINCT] sütun_listesi FROM tablo_adı [WHERE arama_durumu] [ORDER BY sıralama_listesi] [GROUP BY grup_listesi] [HAVING sahiplik_durumu] [UNION secim_açıklaması] (heterojen birleşmeler) Aşağıda belirtilenler hariç bütün cümlecikler ANSI_standart SQL' ce kullanılır. [ ] içinde olanlar istenirse kullanılır. A.1 Distinct CümleciğiB) Update Ansi -Standard Update için belirtilen bir sınırlama yoktur. Örneğin : Update ULKETABLOSU Set baskent='Paris' Where ULKE='FRANSA' And baskent='Istanbul' C) Delete Ansi -Standard Delete için belirtilen bir sınırlama yoktur Örneğin : DELETE FROM TEZ9.DB WHERE SOYAD="ERTEM" | |
| ![]() |
Etiketler |
arsiv, dev, sql, tquery, ve |
Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir) | |
Seçenekler | |
Stil | |
| |
![]() | ||||
Konu | Konuyu Başlatan | Forum | Cevaplar | Son Mesaj |
TQuery Kontrolü İle Veri Sorgulama | Kaf_Dağı | Delphi | 0 | 18 Mart 2015 14:30 |
Arşiv - Arşiv Nedir? | Zen | Genel Paylaşım | 0 | 13 Haziran 2014 13:25 |
vBulletin 3.5.x Code Mods - Extensions - Plugins Arşiv 60 MB lik Dev Arşiv | alpsi | vBulletin Sorunları ve Çözümleri | 1 | 01 Nisan 2009 03:34 |
PHP Scripts [Arşiv] | CanCeL | PHP | 3 | 29 Haziran 2008 15:40 |