Windows XP,Püf Noktaları Bilgisayar Programları indir Bilgisayar bilgi bilgisayar oyunları Bilgisayar oyuları oyular bilgisayar oyun indir

(Bilgisayar oyunlari) (Bilgisayar Programlari ) (Pc guvenlik Merkezi) (Windows)

3/7/2007 - SQL VE TQUERY Dev Arşiv...

Kategori: Windows
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 2

2.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. 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:ORNEKPARCA.DBF" ifadesinin yazımında ikisi de doğrudur. Bunlar yerine BDE Alias (takma adlar) da kullanılabilir. Örneğin Select from "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ği

Kelime manası ayrı ,hariç,tek demektir. Deyim olarak aynı alandaki benzersiz olanları bulmayı ifade eder.
Aşağıdaki örnek şehir alanı ne olursa olsun tüm öğrencileri gösterir
Select ogr_sehir From Ogrenci

Aşağıdaki örnek ise sehirleri aynı oln öğrencilerin yalnız ilkini seçer.
Select DISTINCT ogr_sehir From Ogrenci


A.2 From Cümleciği

From cümleciği verinin getirileceği tablo veya tabloları belirtir . Tablo referansı tek bir tablo ,tabloların virgülle ayrıldığı bir liste veya iç/dış birleştirme (SQL -92 standartında belirtilen ) olabilir . Örneğin aşağıdaki ifade tek bir tabloyu çağırır :
Select ogr_ad,ogr_soyad From "Ogrenci.dbf"

Aşağıdaki ifade bir sol dış birleştirmesini gösteren tablo referansına bir örnektir.
Select From Parca left Outer join İthalat On Parca.Parca_no=Ithalat.Parca_no


A.3 Where Cümleciği

İsteğe bağlı olarak kullanılan Where cümleciği arama durumunda belirtilen kriterlere uyan kayıtların alınmasını böylece filtreleme yapılmasını sağlar.
Örneğin aşağıdaki ifade sadece Parca_nosu 543' den büyük olan satırları çağırır.
Select From Parca Where Parca_no>543

Where cümleciği IN yüklemini de içerebilir. IN yüklemi parantez ,içinde değerler listesini içerir. Örneğin aşağıdaki ifade sadece Parca_no 'su IN yüklem listesindeki öğelere eşit olan satırları çağırır.
Select From Parca Where Parca_no IN (543,544,650,680)
Select from Dersler Where bol_kod='12' and ogr_sinif='4'
Where cümleciğinde karşılaştırma için > ,<,=, <> gibi operatörler kullanılabilir. Bunun yanı sıra IN , ANY , ALL , EXIST yüklemleri de kullanılabilir

A.4 Order By

Order By cümleciği çağrılan satırların sırasını belirtir.
Örneğin aşağıdaki sorgu öğrenci ismine göre alfabetik(artan) sıralı olarak bütün öğrencilerin listesini verir
Select From Ogrenci Order By ogr_no ASC
aşağıdaki sorgu öğrenci soyadına göre alfabetik(azalan) sıralı olarak bütün öğrencilerin listesini verir.
Select From Ogrenci Order By ogr_soyad DESC

Hesaplanmış alanlar korelasyon( ilişki) ismine veya sıra durumuna göre sıralanabilir. Örneğin aşağıdaki sorguda ad ile soyad alanı birleştirilerek oluşturulan alana göre sıralanarak kayıtlar ekrana çağrılır.
Select soyad || ',' ad || as tam_ad ,telefon From müsteri Order by tam_ad

A.5 Group By

Group By cümleciği toplam fonksiyonları için çağrılan satırların nasıl gruplandırılacağını belirler.

Örnek:
Select Parca_no, Sum(miktar) as Toplam
From Parca
Group By Parca_no

A.6 Having

Having cümleciği kaydın sorguca belirlenen değerlere sahip olup olmadığına bakar. Group By ile birlikte kullanılır. Having cümleciğiyle denkleşmeyen gruplar sonuç kümesinden çıkarılırlar. Alt sorgular Having cümleciğince desteklenirler.

Alt sorgu ,ana sorguca döndürülecek kayıtların sayısını sınırlayan arama koşullarıdır. =,<,> gibi koşullandırmalar yanında IN ,ANY ,ALL, EXIST gibi ön yüklemler de kullanılabilir.

Bölümlere göre öğrenci sayıları 500 kişinin üstünde olan bölüm kodlarının listesini veren bir örnek aşağıdadır.
Select DISTINCT ogr_bol_kod, COUNT() From Ogrenci Group By ogr_bol_kod Having COUNT ()>500

A.7
Union

Union cümleciği iki veya daha fazla Select ifadesinin sonucundan tek bir tablo üretmek için kullanılır.
Örneğin :
Select From Ogrenci UNION Select From Veli

A.8 İntersect

Sorgulardan elde edilen ortak kayıtları verir.
Select From Ogrenci INTERSECT Select From Veli


A.9 Minus

Birinci sorguda bulunup ikinci sorguda bulunmayan kayıtların bulunmasında kullanılır.Diğer bir şekilde bir grup öğenin seçimden çıkarılması amacıyla kullanılır.
Select Ogr_num From Ogrenci MINUS (Select ali_ogr_num, From alınandersler)

A.10 Heterojen Birleşmeler

Local SQL farklı veri tabanlarındaki tabloların birleştirilmesini destekler. Heterojen birleştirme yapılacağı zaman yerel bir takma ad seçebilirsiniz. Takma ad seçmek için SQL/SELECT ALIAS 'ı seçin. Eğer Alias seçmezsen Local SQL tabloyu kullanılan veri tabanının olduğu aktif dizinde bulmaya çalışacaktır.
Örneğin ISLER Alias 'ı fonksiyonda geçen veri tabanı idaresi olabilir.
Yerel bir Alias seçtikten sonra bir tablo ismi belirtirsek

• Yerel tablolar için hem Alias' ı hem yolu belirtin
• Tabloları uzaktan kontrol için sadece Alias' ı belirtin

Aşağıdaki ifade Paradox tablosundan ve Dbase tablosundan veri getirir.
Select Distinct M.Müs_no,M.Sehir,S.Siparis_no From "MUSTERI.DB" M , "SIPARIS.DBF" Select Where M.Müs_no= S.Müs_no


B) 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"
DML İfadelerinde Alt Durum Parametreleri

Dml ifadelerinde değerler yerine kullanılabilen değişkenler : den sonra yazılmalıdırlar.
Örneğin :
SELECT ad,soyad From "Musteri.db" Where soyad>:var1 and ad<:var2

Toplam Fonksiyonları

Çağrılan datayla birlikte aşağıdaki Ansi-Standard SQL toplam fonksiyonları kullanılabilir.

SUM () Bir sütundaki değerlerin toplamını alır.
AVG () Bir sütundaki değerlerin ortalamasını alır.
MIN () Bir sütundaki değerlerin en küçüğünü bulur.
MAX () Bir sütundaki değerlerin en büyüğünü bulur.
COUNT () Bir sütundaki değerlerin sayısını bulur

Örnek :
SELECT SUM (BRUT) FROM PERSONEL


String Fonksiyonları

UPPER() Stringi büyük harfe çevirir.
LOWER() Stringi küçük harfe çevirir.
TRIM() Stringin bazı kısımlarını alır.
SUBSTRING() Stringten alt stringler oluşturur.

Örnek :
Select from Tez1.db Where Upper(Soyad)='ARSLAN'

Tarih Fonksiyonu

Local SQL EXTRACT() fonksiyonuna tarih/zaman alanlarından tek sayısal alanı almak ve şu şekilde kullanmak suretiyle çalışmasına izin verir.
EXTRACT (extract_alan From alan_adı)
Örneğin aşağıdaki ifade tarih alanından yıl değerini alır.
Select Extract( Yıl From Dogum_tar) From Ogrenci
Aynı zamanda MONTH ,DAY,HOUR,MINUTE,SECOND değerlerini de bu fonksiyonu kullanarak çıkartabilirsiniz.
NOT : EXTRACT TIMEZONE_HOUR veya TIMEZONE_MINUTE cümleciklerini desteklemez.

Operatörler

Local SQL şu operatörleri destekler.
Aritmetik ( ) ,+ , - , , /
Karşılaştırma <, >,= ,<>, >=,=< ,IS NULL ,IS NOTNULL, : Boşluk olarakda nitelendirilir. ' ' boşluk değildir.
IN ,NOTIN :Bir küme içinde olup olmama durumu
[NOT] BETWEEN x AND y :Bir değerin x ile y arasında veya dışında olması durumlarını belirtir
ALL :Bir kümedeki tüm değerlendirir ve bir eşitlik veya eşitsizlikle kullanılır. Where Ucret>=ALL(10000,20000)
ANY : Bir kümeden elde edilen değerlerin her hangi biriyse seçime dahil olunur.
[NOT] EXISTS :Alt sorgu kavramıyla kullanılır.
[NOT] LIKE :Benzerlik işlemcisi Where isim Like 'A%' İsmi 'A' ile başlayanlar
Mantıksal ( ) ,AND ,OR , NOT
String birleştirme ||


Güncellenebilen Sorgular

SQL linkleri hem tekli hem de çoklu tabloların güncelleştirilebilir sorguları için genişletilmiş destek sunar. Şu kısıtlamalar güncellemelere etki eder.
• Link yapılan alanlar güncellenemez
• Index anahtarlaması hataya yol açar.

Aktif Sorgulardaki Sınırlamalar
Tekli tablo sorguları veya görünümleri (güncellenebilir olanlar) şunları sağlar:
• Join Union,Intersect ,Minus işlemleri yoktur.
• Distinct anahtar kelimesi Select' te yoktur.
• Select cümleciğindeki her şey basit Sütun referansı veya hesaplanmış alandır , Toplam fonksiyonlarına izin verilmez
• From cümleciğinde referans edilen tablo hem güncellenebilir taban tablosu veya güncellenebilir görünüme sahiptir.
• Group By ve Having cümleciği yoktur.
• Alt sorgular yoktur, alt ilişkili sorgular yoktur.
• Herhangi bir Order By cümleciği Index Ek kısıtlamalar alanlara veya kursor metotlarına uygulanabilir.

Tablo Birleştirme (JOIN) işlemi

Sorgulanan veriler eğer birden fazla tabloda yer alıyorsa Join işlemi yapılır. Join işlemi yapılabilmesi için iki tabloda da ortak alanlar olmalıdır.
Örneğin
OGRENCI SINAV
NO AD SOYAD NOTLAR VIZE1 VIZE2 FINAL
1 ISMAIL ARSLAN 1 90 100 100
2 ARZU ARSLAN 4 85 90 95
3 ISRAFIL ARSLAN 3 92 80 90

Çizelge 1 Birleştirilecek iki tablo
Select No,Ad,Soyad,Fınal
From Ogrenci, Sinav
Where No=Notlar and no<'4'

Aktif Join (Bağlantılar) Üzerindeki Kısıtlamalar

Aktif bağlantılar kursorlere bağlıdırlar ve şuralarda kullanılabilirler.
• Bütün bağlantılar soldan sağa dış bağlantılardır
• Bütün bağlantılar Indexlerle desteklenirler.(Paradox veDbase için)
• Dış ısmarlama tanımlanmaz
• Her tablo(Join deki) taban tablodur.
• Sorgu tekli tablo güncelleştirmesini engelleyecek hiçbir elemente sahip değildir.


Sabitler (Constraints)

Herhangi bir güncellenebilir sorguyu çalıştırmadan önce Query durum özelliğinin StmtConstarined 'ini true ayarlayarak bir tabloyu sabitleyebilirsiniz. Kayıt ekleme veya düzeltme işlemi yeni kaydın kaybolmasına neden olduğu durumlarda bir hata oluşacaktır.

Hesaplanmış Alanlar

Güncellenebilen sorgular için bir ek alan sonuç alanı olarak tanımlanabilir. Bunlar hem read-only hem hesaplanış alan olurlar. BDE fonksiyonundan DbiPutField çağrısı belirtilen alanın yeniden hesaplanmasına neden olur.

Bde Fonksiyon Çağrıları (Sonuç Sorguları Üzerinde)

Eğer bir sorgu kursor döndürürse o kursor BDE fonksiyonu olan DbiOpenTable 'dan dönen düşük seviyedeki yetenekleri tam olarak destekler.
Böylece filtreler ve alan haritaları ileri sonuç kümesi temizlemelerine uygulanmak için kullanılabilir. Açık tablodaki kursörlerin tersine DbiAddindex ve DbiSwitchtoIndex isimleri uygulanamamaktadır.

Veri Tanımlama

Local SQL veri Tanımlama dilini oluşturma,değiştirme ,tabloları silme indeksleri oluşturmak ve sıralamak hususlarını destekler. Görünümler desteklenir.

Local SQL DDL ifadelerindeki değerler için değişkenlerin alt durumlarına izin vermez.
Aşağıdaki DDL durumları desteklenmektedir.
CREATE TABLE Tablo oluşturma
ALTER TABLE Tablo düzeltme
DROP TABLE Tablo sime
CREATE INDEX Index oluşturma
DROP INDEX Index silme
CREATE VIEW Görünüm oluşturma

B1. Create Tables (Tablo Oluşturma)

Create Table aşağıdaki sınırlamalar olmak üzere kullanılır:

• Domain 'e dayanan sütun tanımlamaları desteklenmez
• Sabitler Paradox için PRIMARY KEY ile sınırlanmıştır.
• Dbase de sabitler desteklenmez

Örneğin aşağıdaki ifade Paradox ta Primary Key 'in soyad ve ad sütunları üzerinde sabitlenmiş bir veri tabanı tablosu oluşturur.
Create Table "ISCI.DB"
(
Soyad char (15),
Ad char (15),
Maas numeric(10,2),
Bölüm smallint,
Primary Key (soyad,ad)
)
Aşağıdaki örnek yukarıdakinin Dbase için yazılmış olup Primary Key atlanmış halidir.
Create Table "ISCI.DBF"
(
Soyad char (15),
Ad char (15),
Maas numeric(10,2),
Bölüm smallint,
)

B2. Paradox ve Dbase Tablosu Oluşturma

Local SQL 'i kullanarak Paradox veya Dbase tablosu oluşturabilirsiniz. Bunu ismi verirken uzantısını belirterek yapabilirsiniz.
".DB" Paradox için
".DBF" Dbase için

Eğer yerel tablo isminin uzantısını yazmazsanız bu tablonun uzantısı BDE Configuration Utility de Sistem sayfasında Varsayılan sürücü ayarındaki tür olacaktır.

B3. Alter Table (Tablo Düzeltme)

Local SQL aşağıdaki Ansi-Standard Alter Table alt kullanım deyimlerini desteklemektedir. Tabloyu değiştirirken yeni sütunlar ekleyebilirsiniz.
Sütun ekleme ALTER TABLE tablo_ismi ADD sütün_ismi veri_tipi [,ADD sütun ismi veri tipi ...]

Örneğin aşağıdaki ifade Dbase tablosuna 1 sütun ekler
ALTER TABLE "Ogrenci.DBF" ADD ortalama smallint

Sütun silme ALTER TABLE tablo_ismi DROP sütün_ismi [,DROP sütun ismi ...]

Aşağıdaki ifade tablodan iki sütün siler
ALTER TABLE "Ogrenci.Dbf" DROP soyad, DROP ad

ADD ve DROP işlemleri tek ifadede birlikte kullanılabilir. Örneğin aşağıdaki ifade iki sütun siler ,bir sütun ekler:
ALTER TABLE "Market.DB" DROP kdv,DROP topkdv,ADD topalıs integer

NOT : Query1.Open dedikten sonra SQL 'i çalıştırırsak EnoResultSet hatası verir .
NOT : Mevcut bir alanı eklersek veya olmayan bir alanı kaldırmaya çalışırsak EDBerror hatası alırız.

B4. Drop Table (Tablo Silme)

Bu komut Paradox veya Dbase tablosunu siler .
Örneğin DROP TABLE "ISCI.DB"
Bu işlem tabloyu tamamen siler.

NOT : Query1.Open dedikten sonra SQL 'i çalıştırırsak EnoResultSet hatası verir .

B5. Create Index (Index Oluşturma )

Create Index kullanıcılara aşağıdaki formatı kullanarak tablolara index oluşturmayı sağlar.
Create Index index_adı ON tablo_adı (sütun [,sütun...])
Create Index dbase tabloları için index oluşturmanın tek yoludur.

Aşağıdaki ifade Dbase dosyası için index oluşturur.
Create Index namex ON "Depo.Dbf" (malz_adi)

Paradox kullanıcıları Create Index ile ikincil indexler oluşturur. İlk index olan Primary dosyaları Primary Key belirterek tablo oluştururken Create Table ile birlikte yazılarak oluşturulur.

B6. Drop Index (Index Silme)

Local SQL Ansi -Standard Drop Index ifadesi ile oluşturulmuş indexi silmenize izin verir. Bu Dbase ve Paradox dosyalarını destekler.
DROP INDEX tablo ismi.index_ismi |PRIMARY

Primary anahtar kelimesi Paradox primary indexleri silmek için kullanılır. Örneğin aşağıdaki ifade ISCI.DB deki ana primary index 'i silmek için kulllanılır.
Drop Index "ISCI.DB".Primary

DBase index dosyalarını veya ikincil Paradox indexlerini silmek için index ismini yazmanız gerekiyor.
Drop Index "ISCI.DB".Namex

NOT : Eğer tablonuzun indexi yoksa EdbEngineError index does'nt exist mesajı verir.

B7. Create View

Görüntü Select ifadesinden bir görsel ifade oluşturur. İhtiyacınız olan bu veriyi bu hareketli ızgara veya pencereyle tablo üzerinde görebilir. Bunu yaparken de teknik işlemler gözükmez. Karışık beceri gerektiren Select cümleciği yazmaktansa kullanıcı bir görünüm seçer.

Create View bir veri görünümü seçer ki bu veri tabanında ki bir veya daha fazla tablodan oluşur. Geri döndürülecek (veya görüntülenecek) satırlar kaynak tablodaki sütun listelerinden Select ifadesiyle seçilenlerce belirlenecektir. Select proje ,birleştirme işlemlerini eğer bunlar tabloysa yapılabilir.

Create View kullanıcılara aşağıdaki biçimi kullanarak tablolar üzerinde görünümler oluşturmalarına izin verir.
Create View görünüm_adı [sütun_adı [,sütun_adı]...]

Create View ClientDataRepository (CDR) ile birleşiyor.
CDR görünümü tanımlayan Select cümleciğini içerir. "WITH CHECK OPTION" sabit görünümler oluşturmak için desteklenir. Görünümlerin görünümü de desteklenir. Yine de Basamakla/Yerel (cascade/local) görünüm özelliği desteklenmez. Çünkü tüm güncellenebilen görünümler sabitleri basamaklar
DDL Örnekleri
a) Drop Table ( Tablo Silme)

Eğer tablo ismi , karakter periyodu içeriyorsa, ismi çift tırnak içinde gösteriniz.
Drop Table "C:DataCustomer.Db"
Eğer tablo ismi , karakter periyodu içermiyorsa, ismi çift tırnak içinde göstermeyin. Drop table clients

NOT: Query1.Open yazılmamış olması gerekiyor.

b) CREATE INDEX

Create Index Insoyad On Tez9[Soyad]
Create Index Parca On Parcalar (Part_No)
Create Index Pers_maas On personel(brüt)

Paradox : Paradox birincil indexleri yalnızca tablo oluşturulurken oluşturulabilir. İkincil indexler büyük harf duyarsız korunduğunda mümkünse oluşturulur.

Dbase : Dbase indexleri belirtildiği gibi oluşturulur. Index ismi tag ismidir

c) DROP INDEX

Index silerken Tablo_ Ismi.Index_ Ismi şeklinde bir yazılım kullanırız.
Drop index.part_no
Drop index.primary
Drop tez9.insoyad


DML ( Data Manipulation) Örnekleri
Aşağıdaki cümlecikler :
Select From, Where ,Order By, Group by ve Having
Aşağıdaki toplamlar
SUM , AVG , MIN , MAX , COUNT ve
Aşağıdaki operatörler
, , / , =, <> , is NULL
UPDATE , INSERT , DELETE tarafından desteklenen operatör ve cümleciklerdir.
Aşağıdaki örnekler standart veri tabanlarıyla kullanılan DML ifadelerine birer örnektir.

1. Örnek
UPDATE
Update Esya
Set sehir=' Erzurum'
Where esya.sehir='Aydın'
Sehir adı 'Aydın' olan kayıtların sehir adı alanlarını 'Erzurum' ile değiştirir.

2. Örnek
INSERT
Insert into Esya(parca_no,sehir)
Values ('aa090','Ankara')
Parca ve Sehir alanlarına bu değerleri ekler

3. Örnek
DELETE
Delete From Esya
Where parca_no='aa090'
Parca_nosu 'aa090' olan kayıtları siler

4. Örnek
Birleştirmek için SELECT
Aşağıdaki örnek SELECT ifadesinin nasıl JOIN olarak kullanıldığını gösteriyor
Select Distinct P.parca_no, P.miktar, E.sehir
From Parca P ,Esya E
Where p.parca_no=E.parca_no
And P.miktar>20
Order by P.miktar, E.sehir, P.parca_no

Birleştirme amacıyla kullanılan bir SELECT ifadesi WHERE cümleciğini içermelidir ki en azından bir alanın her iki tabloda da eşit olduğunu kontrol edebilsin.

5. Örnek Alt Seçimler
Select P.parca_no from Parca P
Where P.miktar In
( Select I.miktar from Ithalat I
Where I.parca_no='aa090')

Parca.Db 'deki miktar alanı ithalattaki parca_nosu aa93 olan kayıtlardaki miktarların birine eşit olan parca.dbf deki kayıtların parca_no' larını alır.

6. Örnek Group By
Select parca_no , Sum (miktar) as PQTY
From Parca
Group by parca_no

NOT : Select cümleciklerindeki Toplam alanları eğer hesaplanan alan kullanıldıysa Group By cümleciği kullanılmalıdır.

7. Örnek Order By
Aşağıdaki örnek azalan tipteki cümlecikte kullanılan Order By 'a bir örnektir.
Select Distinct musteri_no
From datamusteri
Order by musteri_no Descending
NOT : Ascending= artan Descending = azalan


BÖLÜM 3
3.1 TQUERY NESNESİ

Tquery Nedir : SQL ifadelerine dayanan dataset 'leri işleyen bir Delpi nesnesidir. Veri tabanına SQL ifadeleriyle ulaşmak için Tquery kullanırız . Query öğeleri Sybase, SQL Server, Oracle, Informix, DB2, InterBase, Mysql gibi uzaktan kontrollü serverlarda , Paradox, dBASE, Access, FoxPro gibi Interbaselerde , ve ODBC türü veri tabanlarıyla kullanılır.
Avantajları :

• Aynı anda birden fazla tabloya erişme (Join İşlemi)
• Tüm satır ve sütünü çağırmaktansa istenen satır ve sütunlara ulaşma.

NOT: Tquery nesnesinin ölçülebilir veri tabanı uygulamalarında özel bir önemi vardır. Eğer yerel veri tabanlarıyla yapılan uygulamaları daha sonra uzaktan kontrollü server uygulamalarına dönüştürmek gibi bir olasılık varsa Tquery öğesi bu geçişi kolaylaştırır.


3.2 TQUERY'nin Hiyerarşik Yapısı

TObject
TPersistent
TComponent
TDataSet
TBDEDataSet
TDBDataSet
TQuery


TQuery' den ile Gelen özellikler
Constrained
DataSource
Local
ParamCount
Params
Prepared
RequestLive
RowsAffected
SQL
SQLBinary
StmtHandle
Text
UniDirectional

TDBDataSet' den Kalıtımsal Gelen Özellikler
Database
DatabaseName
DBHandle
DBLocale
DBSession
Provider
SessionName
UpdateMode

TBDEDataSet' den Kalıtımsal Gelen Özellikler
CacheBlobs
CachedUpdates
CanModify
ExpIndex
Filter
Filtered
FilterOptions
Handle
KeySize
Locale
RecNo
RecordCount
RecordSize
UpdateObject
UpdateRecordTypes
UpdatesPending

TDataSet' den Kalıtımsal Gelen Özellikler
Active
AutoCalcFields
Bof
Bookmark
Constraints
DefaultFields
Designer
EOF
FieldCount
FieldDefs
Fields
FieldValues
Found
Modified
Name
State

TComponent' dan Kalıtımsal Gelen Özellikler
ComObject
ComponentCount
ComponentIndex
Components
ComponentState
ComponentStyle
DesignInfo
Owner
Tag
VCLComObject






3.3- TQUERY NESNESİNİN ÖZELLİKLERİ

1) CONSTRAINED (KISITLAMA)

Select ifadeleriyle üretilen sonuç kümesine uymayan güncellemelere veya eklemelere izin verilip verilmeyeceğini ve konulan sınırlamaların aktif olup olamayacağını belirler.
Property Constrained: Boolean;

Bu özelliği kullanarak SQL de Paradox veya Dbase tabloları için yazılmış sonuç kümesine aykırı bir veri girildiğinde buradaki sınırlamaların geçerli olup olmayacağı belirlenir. False ise sınırlamalar göz ardı edilir. True ise eğer değiştirme veya ekleme işlemlerindeki veriler sınırlara uymuyorsa bu girişlere izin verilmez.
Select * From Customers Where (Custno > 1400 And Custno < 1500)

TCHECKCONSTRAINT

Bir alan öğesi için yazılan sınırlamaların toplamını içerir. Alan öğeleri geçerli veri değerlerini tanımlayan kontrol koşullarını destekler. Bu nesne verilen alana etki eden kontrol koşullarının toplamını saklamaktadır


2) DATASOURCE

Aktif alan değerlerini veri tabanından alarak SQL ifadesinde kullanmayı sağlayan DataSource öğesini belirler.
Property DataSource: TDataSource;

Datasource başka bir dataseti işaret etmelidir. Bir query öğesini göstermemelidir. Datasource' ta belirtilen dataset oluşturulmalı,çalıştırılmalı ve parametre bağlanmadan önce açılmalıdır. Parametreler Query' nin Prepare metoduyla çalıştırılırlar.

İpucu : DataSource' u özellikle linklerde master-detail ilişkisinde kullanın. Aynı zamanda Params setinde olmayan parametreleri bağlamayı garantilemek için veya Parambyname metodunu çağırmak için kullanılır.

Eğer SQL cümlesi parametre içermezse veya parametreler Params özelliğini veya ParambyName olayını kullanıyorsalar bunu kullanmanıza gerek yok.


3) -R- LOCAL

Bir Querynin uzak erişimli servarlardakl SQL tablolarından daha çok bir veya daha fazla Paradox veya dBase tablosunu mu tercih ettiğini belirtir.
Property Local :Boolean;

Bir sorgu uzak serverdaki SQL tablosuna değilde bir veya daha fazla Paradox veya Dbase tablosuna erişiyorsa ( SQL tablosu yerine ) bu özellik true olur. Yoksa Local False 'tur. Local bir uygulama sorgunun Prepare metodunu sorguyu çalıştırmadan önce otomatikman ayarlar.

Bazı sorgu öğe setleri (constrained gibi) Paradox veya Dbase tabloları için çok anlamlıdır. Diğerleri SQL serverların uzaktan kontrolünde anlamlıdır. Local bize ulaşılan veri tabanının tipine dayanarak code'da mantıksal ayrımlar (branşlar) için yararlı bilgiler verir. Aynı zamanda BDE' nin bir sorguyu kendi Local Query motorunu kullanarak mı yoksa SQL ifadelerini doğrudan uzaktan kontrollü server 'a geçerek mi bir sorguyu parsellediği belirlenebilir.

4) PARAMCHECK

SQL özelliği çalışma anında değiştirildiğinde parametre listesinin (bir sorgu için) tekrar üretilip üretilmediğini belirler.
property ParamCheck: Boolean;

Varsayılanı true dur. Ve bu params özelliğinin çalışma esnasında otomatik olarak yeniden üretileceğini belirler. Paramcheck true olduğunda aktif SQL ifadesi doğru parametre numarasının üretileceğini garantilemiş olur.

Bu özellik parametre kullanan veri tanımlama ifadeleri için çok yararlıdır. Örneğin interbase store procedure için sorgu öğesi kullanırken. Parametresiz sorgu kullanan uygulamalar Paramcheck özelliğini False ayarlayabilir ama diğer durumlarda bu özellik true olmalıdır.

5) -R- PARAMCOUNT
Query için aktif parametre sayısını belirtir
Property Paramcount :Word;

Paramcheck özelliği true ise Paramcount daima Query için SQL ifadesindeki gerçek parametre sayısına uyar.Bir uygulama Params özeliğine parametre ekleyebilir veya parametre silebilir. Bu tür değişiklikler Paramcount özelliğine otomatik olarak yansır.

6) PARAMS

Sorgunun SQL ifadesi için parametre bilgisini saklar.
Property Params[Index:Word] Tparams

Çalışma anında Params'a parametre isimlerini değerlerini ve veri tiplerini dinamik olarak görmek ve ayarlamak için ulaşır. Params 0 tabanlı bir parametre kayıt dizisidir. Index ulaşılacak dizi elemanını belirtir.

NOT: Her parametrenin ismi bilindiğinde parametre değerlerini ayarlamanın ve çağırmanın daha kolay bir yolu ParambyName kullanmaktır. Fakat Parambyname ile parametrenin ismini ve tipini değiştiremeyiz.

Select ifadelerinde kullanılan parametre boş (NULL) olamaz Fakat bunlar Update ve Insert ifadelerinde Null olabilir.

TQuery Params girisi

Örnek1:
Query1.Prepare;
Query1.Params[0]:='Argentina';
Query1.ExecSql;

Örnek2:
Query1.Params[0].Asstring:=(sender as Tedit).Text;
Query1.ExecSql;
7) PREPARED

Bir sorgunun çalıştırılmak için hazırlanıp hazırlanmadığını belirler.
property Prepared: Boolean;

Eğer true ise Query hazırlanmıştır. False ise hazırlanmamıştır. Bir sorgunun çalıştırılmadan önce hazırlanması gerekiyorsa ve bu daha önce hazırlanırsa çalıştırma performansı artar.(özellikle bu aynı parametre değerlerini alarak birden fazla çalıştırılan bir parametreli sorgu ise) .

if not Query1.Prepared then
begin
Query1.Close;
Query1.Prepare;
Query1.Open
end;

NOT : Bir uygulama aktif Prepared ayarlarını sorguyu hazırlamak veya hazırlamamak için değiştirebilir. Eğer Prepare true ise bunu False yapmak Unprepare metodunu sorguyu hazırlamaması için çağırmak demektir. Prepared false ise bunu true ayarlamak sorguyu hazırlamak için Prepare metodunu çağırmak demektir. Prepared False ise bunu true ayarlamak sorguyu hazırlamak için Prepare metodunu çağırmak demektir. Genelde Prepare ve Unprepare 'ı direkt olarak çağırmak daha iyi bir programlama tekniğidir.

8) REQUESTLIVE

Sorgu çalıştığında uygulamanın BDE' den canlı sonuç seti bekleyip beklemeyeceğini belirler.
Property Requestlıve :Boolean;

Requestlive 'i BDE nin uygulama için sonuç seti üretmeyi deneyip denemeyeceğini belirlemek için ayarlayın. Varsayılan değeri False'dir ve bu Query read-only sonuç seti döndürür.

Requestlive 'ı true olarak ayarlamak BDE' den canlı sonuç setinin döndürüleceğini garantilemez. Yalnızca BDE 'nin bu seti döndürmek için çalışacağını garantiler .BDE yalnızca Select yazılımı canlı sonuç seti için gerekli ifadelere sahip olduğunda canlı sonuç seti döndürür.

Eğer Requestlive true ise fakat yazılım gereklere uygun değilse BDE read-only sonuç setini Paradox veya Dbase için döndürür veya uzaktan kontrollü serverlar için hata koduna döndürür.

9) -R- ROWSAFFECTED

Son query işlemince kaç satırın güncellendiğini veya silindiğini belirler.
Property Rowsaffected :Integer;

Eğer RowsAffected -1 ise sorgu hiçbir satıra etki etmemiştir.
Örneğin Label1.Caption:=Inttostr(Query1.RowsAffected)

10) SQL

Sorguda çalıştırılacak SQL ifadesini saklar.
Property SQL:Tstrings

SQL 'i bir sorgu öğesi olan Execsql veya Open metotları çağrıldığında çalışmak üzere SQL ifadesi oluşturmak için kullanırız. Dizayn aşamasında Object Inspector' daki string list editöre başvurarak SQL özelliği düzenlenebilir.

NOT : Delphi Client/server geliştiricileri aynı zamanda SQL cümleciği yazmak için Visual Query Builder da kullanırlar. SQL özelliği şunlara ulaşmak için kullanılır.

• Local SQL 'ı kullanarak Paradox veya Dbase tablolarına erişmek .İzin verilen yazım şekli Ansi-Standard SQL 'de olduğu gibidir ve Select Insert,Update,Delete ifadelerini içerir.

• Local interbase serverlarındaki veri tabanlarına , SQL -92 standardını ve özel interbase uzantılarını SQL yazılımı için kullanır. Bunun yazım kuralı ve sınırı için Interbase Language Referenca bakabilirsiniz.

• SQL link sürücüleri yaklaşımını (yöntemini) kullanarak uzaktan erişimli veri tabanı serverlardaki veri tabanlarına SQL yazılımı ve sınırları için server dökümantasyonuna bakınız.

SQL için hazırlanan SQL ifadeleri yeniden yerleştirilebilen parametreleri içerebilir. Parametreler params özelliğinde oluşturulur ve saklanır.
Çalışma esnasında SQL ifadesi yazmış olmak için ;

1) Query çalışıyorsa kapatmak için CLOSE yöntemini çağırın.
2) SQL özelliğini temizlemek için CLEAR
3) Yeni bir sql ifadesi eklemek için ADD veya SQL özelliğinde ****** dosyasına bir dosya atamak için LOADFROMFILE yöntemini kullanın.
4) Eğer kullanıyorsa parametreleri ayarlamak için ParamByName kullanın
5) Sorguyu çalıştırmaya hazırlamak için PREPARE kullanın
6) Sorguyu çalıştırmak için EXECSQL veya OPEN kulanın.

NOT : SQL ifadesi aynı anda bir SQL ifadesi taşıyabilir. Genelde bir server destekleyene kadar çoklu (batch) ifadelere izin verilmez.

11) SQL BINARY

SQL sorgu ifadesini veya sonuç setini temsil eden ikilik veri akışını gösterir.
Property SQLBinary: PChar;

NOT : SQL Binary' yi direk kullanmayın .Bu BDE ' ye direk iletişim erişimi için dahili olarak kullanılır. Bu SQL özelliğinin çalıştırdığı SQL ifadesini görmek ve ayarlamak için SQL kullanın.

12) -R- STMTHANDLE

Sorgu için BDE ifadesini tutar.
Property StmtHandle: HDBIStmt;

Bunu eğer bir uygulama BDE' yi direk çağırıyorsa kullanın.(Tquery metotlarını es geçin). Bazı BDE API uygulamaları durum yöneticisine parametre olarak ihtiyaç duyarlar. Bunun dışındaki bütün durumlarda bu özelliğe ihtiyaç yoktur.

13) -R- TEXT

BDE 'ye geçen gerçek SQL sorgu metnini gösterir.
Property Text: PChar;

Read-only bir özelliğe sahiptir ve BDE 'ye geçen gerçek SQL query metnini araştırmak için kullanılır. Parametreli sorgular için ,parametrelerle ? sembolü kullanılan metindir.

Genelde bu özelliği kullanmaya gerek yoktur. Sorgudaki SQL ifadesini değiştirmek veya ulaşmak için SQL özelliğini kullanın. Parametreler için Params özelliğini kullanın.

14) UNIDIRECTIONAL

BDE iki yönlü kursörlerinin sorgunun sonuç seti için uygun olup olmadığını belirler.
property UniDirectional: Boolean;

BDE kursörünün sonuç setinde ileri veya geri gidip gitmeyeceğini ayarlayabilirsiniz. Varsayılan değeri False dir.

NOT :Genelde SQL kursörler unidirectional dır. Sadece veri yapısında ileri gidebilirler. Yine de BDE buna izin vermektedir.

Eğer bir uygulama sonuç setinde iki yönlü kayıtlara ulaşma gereği duymuyorsa bunu true olarak ayarlayın. True olduğunda uygulama daha az hafızaya ihtiyaç duyar ve hız artar.

TDBDATASET 'DEN GELEN ÖZELLİKLER

15) -R- DATABASE

Bir veya daha fazla tabloyu temsil eden veri tabanı öğesini tanımlar.
property Database: TDatabase;

Tablo ile ilişkili veri tabanı öğesinin özelliklerine ,olaylarına ve metotlarına ulaşmak için database' i kullanın. Read-only bir özelliktir ve DatabaseName özelliği ile belirtilen veri tabanı açıldığında otomatik olarak ayarlanır.

with Table1.Database do
begin
StartTransAction;
{Bazı kayıtları Table1 ile kaydeder}
Commit;
end;

16) DATABASENAME

Dataset ile ilişkilendirilecek veri tabanının ismini belirtir.
property DatabaseName: string;

DatabaseName uygulamada kullanılan Database (veri tabanı) öğesinin ismiyle aynı olmalıdır.

NOT : DatabaseName 'i veri tabanı bu öğe ile ilişkili olduğunda (aktif bir tablo olduğunda, bağlantı kuruluyken) ayarlamaya kalkarsanız hata oluşur.

İPUCU : Dizayn esnasında Tdatabase öğesini çift tıklayarak Database editörü çağırın ve DatabaseName özelliğini ayarlayın.

DatabaseName özelliğini değiştirirken tüm bağlantılı tablolar kapalı olmalıdır.
Table1.Active := False;
try
{ Ilk önce alias kullanmaya çalışıyoruz }
Table1.DatabaseName := 'Delphi_Demos';
Table1.Active := True;
except on EDatabaseError do
{ Eğer hata oluşursa sürücü ve dizin belirtiyoruz }
Table1.DatabaseName := 'delphidemosdatabase';
Table1.Active := True;
end;


17) -R- DBHANDLE

BDE veri tabanı yönetimini tablo için belirler

Type
HDBISES:longint;
Property Dbhandle: HDBISES;

Dbhandle sadece database ve dataset metotlarını atlayarak direkt BDE API' lerine yazma yapılan uygulamalarda yararlıdır. Birçok BDE fonksiyon çağrısı yönetim parametresine ihtiyaç duyar. Oturum aktif edildiğinde Dbhandle' a bir başlangıç değeri atanır.

NOT: Bu özelliği BDE fonksiyonel olarak standart Delphi öğelerince kullanılamayacak duruma gelene kadar kullanmayın.

18) -R- DBLOCALE
BDE dil sürücüsünü tablo öğesi için ayarlar.
Type
Tlocale : Pointer
Property Dblocale : Tlocale

Dblocale' ı tablonun ilişkilendirildiği veri tabanı öğesince kullanılan BDE dil sürücüsünü belirlemek için kullanın. BDE ye direk çağrı yapan uygulamalar Dblocale bilgisini API fonksiyonu parametresi olarak vermek zorunda olabilirler.

NOT: Bunu BDE zorunlu olarak ihtiyaç duymadan kullanmayın.

19) -R- DBSESSION

Bu dataset öğesinin ilişki içinde olduğu database oturum öğesini (nesnesini) gösterir.
Property DBSession: TSession

Veri tabanı oturum nesnesini bununla ilişkili olan tablo öğesiyle birlikte gösterir Varsayılan olarak database öğesi varsayılan oturum nesnesiyle ilişkilidir. Oturum otomatik olarak bütün veri tabanı uygulamaları için oluşturulur.

TSession

Tsession bir uygulamada bir grup database' in global yönetimini sağlar. Tsession 'ın üç kullanım şekli vardır; standart , çoklu Paradox için ağ dosyaları ve çoklu iç içe veri tabanı uygulamalarında. Delphi otomatik olarak global ulaşılabilir varsayılan Tsession nesnesini Oturum olarak bütün veri tabanı uygulamaları için yapar .Varsayılan oturum nesnesi standard veri tabanı bağlantılarını tutar. Bir uygulama oturumu onun özelliklerine (properties), olaylarına (event) veya metotlarına girerek kontrol edilebilir.Farklı network yerleşim birimlerindeki çoklu oturumlara eş zamanlı olarak erişmesi gereken veri tabanı uygulamalarında kullanılır.

20) -R- PROVIDER

Bu dataset için provider arayüzünü belirler.
Property Provider: IProvider;

Bu tablo için koruyucu ara biriminı tarif eder. Bu nesne için Provider arabirimini belirlemek amacıyla kontrol edin. Iprovider arabirimi geliştirmecilerin çoklu uygulamalar üzerindeki meraklarıdır. ( Iprovider arabirimi aracılığıyla server uygulamalarında kullanıcı tabloların bu tablo nesnesiyle direk olarak ilişki kurmasını isteyen geliştirmeciler)

21) SESSIONNAME
Bu tablonun ilşkili olduğu oturumun ismini belirler.
Property SessionName: string;

SessionName otomatik olarak tablo 'nun bağlantılı olduğu database öğesinin SessionName özelliğinin ismine ayarlanır. Eğer sessionName boş ise tablo öğesi otomatikman varsayılan oturumla ilişkilendirilir.

Bir tablo öğesini farklı grupla ilişkilendirmek isterseniz SessionName var olan session öğesinin sessionName özelliğiyle aynı olmalıdır. Aynı zamanda bu session bu tablonun bağlı olduğu database öğesince kullanılan bir session olmalıdır.

22) UPDATEMODE

BDE' nin SQL database'de güncellenmekte olan kayıtları nasıl bulacağını belirler.
type
TUpdateMode = (upWhereAll, upWhereChanged, upWhereKeyOnly);
property UpdateMode: TUpdateMode;

UpdateMode'u datasetteki bir kayda konumlanılacağında kriteri belirtmek için kullanırız. UpdateMode aşağıdaki değerleri alabilir:
upWhereAll :Tüm sütunlar kayda konumlanmak için kullanılır
upWhereChanged : Sadece anahtar alanlar ve değişen alanlar kayıt bulmak için kullanılır
upWhereOnly :Sadece anahtar alanlar kayıt bulmak için kullanılır
TBDEDATASET 'DEN GELEN ÖZELLİKLER

23) CACHEBLOBS


Blob'ların hafızada saklanıp saklanmayacağını (cache edilmesi) belirler.
property CacheBlobs:Boolean;

Cacheblobs 'u blob resimler gösteren kayıtlar arasında ilerlerken performansı artırmak için Blob resimlerin hafızada saklanıp saklanmayacağını belirtmek için kullanın. Eğer bir uygulama kayıtlarla ilişkili Blob'ları göstermeye ihtiyaç duymuyorsa Cacheblobs' u False yapın ki sistem kaynaklarını daha optimum kullanmış olsun.

24) CACHEDUPDATES
Cached güncellemelerin (bir tablo ) için kullanıma hazır olup olmadığını belirler.
property CachedUpdates:Boolean;

Eğer CachedUpdates true ise Cached değişikliği yapılabilir yoksa yapılamaz. CachedUpdates enable olduğunda (bir tablonun güncellenmesi ; tablonun kaydedilmesi yeni kayıt ekleme,silme,düzeltme) direkt olarak veri tabanındaki tablolara yazılmak yerine ana bellekte tutulur. Değişiklikler tamamlandığında bir uygulama Cached olan değişiklikleri veri tabanına kaydeder.

Cached güncellemesi kullanıcı uygulamalı bir server veri tabanıyla çalışırken çok yararlı olur.
Bu özelliği aktif etmenin yararları şunlardır.
• Daha az iş ve daha kısa iş zamanı
• Network trafiğini minimize etmek


Potansiyel olabilecek zararları şunlardır.
• Kullanıcılar verinin yerel kopyasını düzeltirken ,başka uygulamalar server üzerindeki gerçek veriye erişebilir ve bunu değiştirebilir.
• Başka uygulamalar uygulamaca yapılan değişikliklere cache'teki bilgi-ler veri tabanına uygulanana kadar veri değişikliklerine ulaşamazlar.


25) -R- CANMODIFY

Bir tablo' nun temelinde yatan veri tabanının veriye yazma erişimine izin verip vermediğini belirtir.
property CanModify:Boolean;

Veri tabanı bağlantısı yapıldığında bir tablo genelde yazma erişimi ister. Canmodify yazma veya korumanın garantilenmesidir. Eğer true ise veri değiştirilebilir ve ana server kütüğüne yazılabilir. Fakat false ise veri görülebilir ama düzeltilemez

NOT: Eğer canmodify true ise verilen kullanıcı için yazılan kısıtlamalar SQL veri tabanı server' ına yazmayı engeller.

26) -R- EXPINDEX

Tablo 'in Dbase açıklama indexi kullanıp kullanmadığını belirler.
Property Expındex:Boolean;
Eğer true ise bir açıklama indexi aktif olur.

27) FILTER

Tablo için aktif filtre ifadesini belirtir.
Property Filter:Strıng;

Tablo için aktif filtreyi belirtir. Filtreleme çalıştırıldığında uygulamada filtre ko-şullarına uyan kayıtlar gösterilir. Örneğin aşağıdaki filtreleme koşulu Sehir alanı "ERZURUM" VE "ANKARA" olanları gösterir.

filter = 'SEHIR="ERZURUM" OR SEHIR="ANKARA"'
Karakter tabanlı kısmi aramalar için joker karakterini kullanabilirsiniz
Örneğin sehir='a'

NOT : Uygulamalar çalışma esnasında filtreleme durumunu değiştirmek için ( kullanıcı girişine cevap verilirken ) kullanılır.

28) FILTERED

Filtrelemenin aktif olup olmayacağını belirler.
Property Filtered :Boolean;

Filter özelliğini veya OnFilterRecord olay yöneticisini aktif etmek için bu özelliği true ayarlayın.Filtreleme true iken kullanıcının bir kaydı düzeltmesi demek kaydın filtrenin test koşuluna uygulanmaması demektir.Filtre aktif iken bir sonraki kayıt getirildiğinde kayıt gözükmeyecek .Böyle olursa filtre koşuluna göre erişilen bir sonraki kayıt aktif kayıt olur.

29) FILTEROPTIONS

Filtrelemenin büyük küçük harf duyarlı olup olmadığı ile kısmi karşılaştırmala-ra izin verilip verilmeyeceğini belirler
TFilterOption = (foCaseInsensitive, foNoPartialCompare);
TFilterOptions = set of TFilterOption;
Property FilterOptions: TFilterOptions

FilterOptions' ı foCaseInsensitive yaparsanız tüm olasılıkları denetlemiş olursunuz. FilterOptions' ı foNoPartialCompare 'a ayarlarsanız çoklu durumlar ve alanlar için yazılan filtre koşullandırmalarından tam bir sonuç elde edersiniz.
Stringlerde kısmi karşılaştırmayı engellemek için FilterOptions özelliğini foNoPartialCompare 'a ayarlayın

30) -R- Handle

Tablo için BDE kursör yönetimini belirtir.
type
HDBICur: Longint;
Property Handle: HDBICur;

Tdataset metotlarını atlamak ve BDE ye direkt çağrı yapmak amacıyla kullanın. Bir çok BDE fonksiyon çağrısı kursör kullanım parametresine ihtiyaç duyar. Tablo açıldığında buna bir başlangıç değeri atanır. Aktif kaydın pozisyonunu değiştiren bir BDE çağrısıyla kullanıldığında Resync yi BDE çağrısından hemen sonra kullanın.

NOT: Bu fonksiyonu BDE fonksiyonel olarak standart Delphi öğeleri üzerinde etkili olamayana kadar kullanmayın.

31) -R- DBLOCALE

BDE Dil sürücüsünü tablo öğesi için ayarlar.
type
TLocale: Pointer;
Property DBLocale: TLocale;

BDE ye direk bağlantı yapan uygulamalar API fonksiyon parametresi olarak Dblocale bilgisini g

EkleBunu Sosyal Paylaşım Butonu
Yorum yaz!

<- Son SayfaSonraki Sayfa ->

Hakkımda

Bilgisayar Programları bilgisayar oyunları indir

Links

Ana Sayfa
Profilim
Arşiv
e-posta

Kategoriler

  • BiLgi
  • Cep Program bilgi
  • JAVA Programlar
  • pc-Cep Programlari
  • SaBiT Programlar
  • SAMSUNG Program
  • siemens programlar
  • Sony Ericsson program
  • Symbian programlar
  • BLUETOOTH oynanan oyunlar
  • Java Oyunlar
  • Kamerayla oynanan oyunlar
  • Klasor Halinde N gage Oyunlari acma
  • N-Gage Oyunlari
  • Oyun Bilgi
  • Samsung oyun
  • Siemens oyunlar
  • Sony Ericsson oyunlari
  • Symbian Oyunlar
  • harketli temalar
  • Nokia Serisi Temalar
  • Samsung
  • Siemens Tema
  • Sony Ericsson Tema
  • tema bilgi
  • Guzel Sozler
  • Sms Cep Mesajlari
  • Avatar Resimleri
  • Anlatimlar
  • Avatar Olusturma
  • Barbie Oyunlari
  • Bilmeceler
  • Edebiyat A dan Z ye
  • Felsefe
  • Fikralar
  • Grafikler
  • Gul Resimleri
  • Hareketli gifler
  • Hayvan Resimleri
  • Kader sayisi
  • Kelebek Resimleri
  • Msn
  • Oykuler
  • Romantik sozler
  • Sen hangi agactan dustun acaba
  • Siirler
  • Kurtlar Vadisi Pusu
  • Mobil Bilgi
  • Mobil Videolar Ve Mobil Filmler
  • MSN nickler
  • Polifonik Melodi
  • Ses Arsivi
  • Ses Bilgi
  • cep video
  • Fotomontaj Programi
  • JavaScript Kodlari
  • Mouse Kodlari
  • Msn Eklentileri
  • Site icin html kodlari
  • Turk Bayraklari icin Html Hodlar
  • Webmaster Gerekli Programlar
  • Son Yazılar

    anasayfa
    XP Açılışını 6 Saniye Yapmak
    Windows Vista Pack 6
    Windows'a Otomatik Temizlik
    Xp'de System Dosyalarını Kısa Yoldan onarmak ;)
    Ultra Hiper Hide Folder :) Klasörü tamamen gizleme olayı..
    Windows Nedir ?
    Internet hızını %20 Arttıralım..
    SQL VE TQUERY Dev Arşiv...
    SQL SERVER 2000 Kurulumu
    Vista Pack PLUS Vista Fonts + Wallpapers + Sounds
    Sata Harddisk Windows Kurulum ( Resimli
    Xp'yi Lisanslı Yapan kodlar :)
    Windows Püf Noktaları
    Klavye Kısayolları
    Windows Sorunları
    Driver Yedeklemek Sürücü yedeklemek Backup Driver bulmak
    Windows Sık Sorulanlar ve Çözümleri
    Windows XP,Püf Noktaları ile ilgili herşey
    wındows vısta kurulum (özel resımlı anlatım)
    _-_-_Windows Vista Ultimate ve Home Basic
    Windows Hata Mesajlarını Acıklıyan Program__no rapid
    En İyi Antivirüs Programları(nod 32 tr/ avast pro tr)
    GÜNCEL ANTİVİRÜS - ANTİSPAYWARE PROĞRAMLARI
    Nod 32 Virus Bulletin Ödülünü 38. Kez aldı
    ANKET
    Sizce Telefonundaki En Önemli Özellik Nedir?

    Kamera
    Ses Ve müzik
    Multimedia
    Bluetooth ve USB
    Telefonun sekli
    Ekran Kalitesi
    Simbian
    Batarya Suresi
    Radyo
    Hicbiri


    Şu Andaki Durum





    Sohbet muhabbet chat avatar oluştur chat sohbet oyun mirc indir Sohbet muhabbet chat çet chat sohbet oyun


    adana sohbet adiyaman sohbet afyon sohbet agri sohbet aksaray sohbet amasya sohbet ankara sohbet antalya sohbet ardahan sohbet artvin sohbet aydin sohbet balikesir sohbet bartin sohbet batman sohbet bayburt sohbet bilecik sohbet bingol sohbet bitlis sohbet bolu sohbet burdur sohbet bursa sohbet canakkale sohbet cankiri sohbet corum sohbet denizli sohbet diyarbakir sohbet duzce sohbet edirne sohbet elazig sohbet erzincan sohbet erzurum sohbet eskisehir sohbet gaziantep sohbet giresun sohbet goruntulu sohbet gumushane sohbet hakkari_sohbet hatay sohbet hiphop sohbet icel sohbet igdir sohbet islam sohbet isparta sohbet istanbul sohbet izmir sohbet kahramanmaras sohbet karabuk sohbet karaman sohbet kars sohbet kastamonu sohbet kayseri sohbet kelebek sohbet kilis sohbet kirikkale sohbet kirklareli sohbet kirsehir sohbet kocaeli sohbet konya sohbet kutahya sohbet malatya sohbe manisa sohbet mardin sohbet msn sohbet mugla sohbet mus sohbet nevsehir sohbet nigde sohbet ordu sohbet osmaniye sohbet rize sohbet rock sohbet sakarya sohbet samsun sohbet sanliurfa sohbet siirt sohbet sinop sohbet sirnak sohbet sivas sohbet tekirdag sohbet tokat sohbet trabzon sohbet tunceli sohbet turk sohbet usak sohbet van sohbet video sohbet yalova sohbet yonja sohbet yozgat sohbet zonguldak sohbet