IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası
  digitalpanel

Etiketlenen Kullanıcılar

Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 24 Nisan 2007, 20:24   #1
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
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 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
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ğ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"

 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları eglen sohbet sohbet
Alt 24 Nisan 2007, 20:25   #2
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: SQL VE TQUERY Dev Arşiv...




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
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
ir küme içinde olup olmama durumu
[NOT] BETWEEN x AND y
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
ir değerin x ile y arasında veya dışında olması durumlarını belirtir
ALL
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
ir 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
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
enzerlik 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

 
Alıntı ile Cevapla

Alt 24 Nisan 2007, 20:25   #3
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: SQL VE TQUERY Dev Arşiv...




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:\Data\Customer.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
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
\data\musteri
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
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
oolean;


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;

 
Alıntı ile Cevapla

Alt 24 Nisan 2007, 20:26   #4
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: SQL VE TQUERY Dev Arşiv...




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
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
oolean;


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 script 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 := '
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
\delphi\demos\database';
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

 
Alıntı ile Cevapla

Alt 24 Nisan 2007, 20:27   #5
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: SQL VE TQUERY Dev Arşiv...




TBDEDATASET 'DEN GELEN ÖZELLİKLER

23) CACHEBLOBS


Blob'ların hafızada saklanıp saklanmayacağını (cache edilmesi) belirler.
property CacheBlobs
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
oolean;


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
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
oolean;


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
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
oolean;


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
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
oolean;

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
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
oolean;


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öndermek zorunda olabilirler.
NOT: Bu fonksiyonu BDE fonksiyonel olarak standart Delphi öğeleri üzerinde etkili olamayana kadar kullanmayın.

32) FILTEROPTIONS

Filtrelemenin string veya karakter alanlar üzerinde büyük küçük harf duyarlı olup olmayacağını ve kısmi kıyaslamaların kayıtları filtrelerken kullanılmasına izin verilip verilmeyeceğini belirtir.

type
TFilterOption = (foCaseInsensitive, foNoPartialCompare);
TFilterOptions = set of TFilterOption;
Property FilterOptions: TfilterOptions

Varsayılan değeri boştur. Karakter alanlardaki filtrelemelerde büyük harf duyarlılığı seçerseniz bütün karakterleri elde etme imkanına kavuşursunuz. Eğer filtrelemeyi birden fazla alan üzerinde yapıyorsanız veya çoklu durum filtrelemesi kullanıyorsanız foNoPartialCompare seçeneğini true işaretleyin

NOT :Kısmi karşılaştırmaya dayanan filtrelemelerde FoNoPartialCompare ı true yapmaya gerek yoktur.Bunun yerine joker karakterleri kullanın.

Örneğin
Sehir='A*'
Sehir adı a ile başlayan kayıtlar.

33) -R- HANDLE

Tablo için BDE kursör yönetimini kullanmayı 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 forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
u fonksiyonu BDE fonksiyonel olarak standart Delphi öğeleri üzerin-de etkili olamayana kadar kullanmayın.

34) -R- KEYSIZE

Tablonun aktif indexi için anahtar boyutunu belirler
Property KeySize: Word;
Keysize indexi oluşturan alanların sayısına ve tipine göre değişir. Byte cinsinden belirtilir.

35) -R- LOCALE

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 Locale bilgisini göndermek zorunda olabilirler.
Dil sürücüsü bilgisi tabloya sahip olan database öğesinin Params özelliğinde-ki bir değeri de olabilir.

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

36) RECNO

Tablodaki aktif kaydı belirtir.
Property RecNo: Longint;

RecNo 'yu aktif kaydın tablodaki numarasını bulmak için kullanın. Uygulama-lar bu özelliği bütün kayıtlar arasında dolaşmak için kullanırlar. Böylece tipik kayıtlar arası dolaşım First ,Last ,Moveby, Next, ve Prior ile yapılır.

NOT: Eğer erişim Paradox tablolarıyla yapılıyorsa Recno kursörü belirtilen özel bir kayıt numarasına ayarlanarak o kayıt üzerine konumlanabilir.


37) -R- RECORDCOUNT

Tabloyla ilişkilendirilmiş toplam kayıt sayısını verir.
Property RecordCount: Longint;

Uygulamalar bunu kayıtlar arasında dolaşmak için kullanabilirler. Böylece tipik kayıtlar arası dolaşım First ,Last ,Moveby, Next, ve Prior ile yapılır.

NOT : Bunu dikkatli kullanın çünkü kayıt saymak pahalı bir işlem olabilir .(Özeklikle geniş sonuç kümeleri döndüren SQL sorguları için ) Genelde bir uygulama bunu yalnız Dbase ve Paradox ile kullanmalıdır.

Kayıtlar arasında dolaşmayı ve dolaştıkça progressbar'ı değiştirme işlemini gerçekleştiren bir örnek aşağıda verilmiştir.
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
begin
with ProgressBar1 do
begin
Min := 0;
Max := Table1.RecordCount;
Table1.First;
for i := Min to Max do
begin
Position := i;
Table1.Next;
end;
end;
end;


38) RECORDSIZE

Tablo' daki bir kaydın boyutunu belirtir.
Property RecordSize: Word;

Recordsize 'ı Delphi bufferının tablodaki bir kaydı tutmak için byte olarak işgal ettiği yeri bulmak amacıyla kullanılır. Tablo açıldığında Open prosedürü DBE' den kayıt tampon bellek bilgisi ister ve gelen bilgiyi RecordSize da saklar. Delphi bu bilgiyi dahili olarak kullanır. Uygulamalar nadir de olsa bu bilgiye ihtiyaç duyarlarsa kullanırlar.

Aktif Query ve tablodaki kayıtsayısını, kayıt boyutunu ,anahtar alan boyutunu,aktif kayıt numarasını gösteren bir kod örneği
procedure TForm1.FormCreate(Sender: TObject);
begin
Query1.open;
Label2.caption:=inttostr(query1.recordcount);
Label4.caption:=inttostr(query1.recno);
Label6.caption:=ittostr(query1.recordsize);
Label8.caption:=inttostr(query1.keysize);
end;


39) UPDATEOBJECT

Cached güncellemeler yapılabilir olduğunda yalnızca okunabilen sonuç kümesini güncellemek için kullanılan güncelleme nesne öğesini belirtir.
type
TDataSetUpdateObject = class(TComponent)
Property UpdateObject: TdataSetUpdateObject

BDE ,uygulama özellikle read-only bir veri görünümü istemedikçe ,güncellenebilir veya canlı sorgu sonucu ,sağlamaya çalışır.

Bazı durumlarda mesela çoklu tablolar için bir sorgu hazırlandığında canlı sonuç seti döndürülemez. Bu durumlarda UpdateObject' i güncellemeleri uygulama için transparant olan ayrı transaction olarak güncelleme yapan TUpdateSQL öğesini belirtmek için kullanırız.

40) UPDATERECORDTYPES

Cached güncellemeler aktif olduğunda tablodaki görünen kayıtların tiplerini belirtir.
TUpdateRecordTypes=set of (rtModified, rtInserted, rtDeleted, rtUnmodified);
Property UpdateRecordTypes: TUpdateRecordTypes;

TupdateRecordTypes aşağıdaki değerleri Alabilen bir tiptir.

Değer Anlamı
rtModified değiştirilen kayıtlar görünür
rtInserted eklenen kayıtlar görünür
rtDeleted silinen kayıtlar görünür
RtUnmodified değiştirilmemiş kayıtlar görünür


Varsayılan değer olarak bütün bu küme içindeki kayıtlar görünür haldedir .Kayıtlar üzerinde işlem yapan bir uygulamada silinen kayıtların uzun bir süre sonra bile kurtarılabilmesi Updaterecordtypes' ın undelete metodu sayesinde olmaktadır.

Bir uygulama aynı zamanda Updaterecordtypes ı kullanarak açık olan oturumdaki kayıtlar için bir filtreleme görevi yapar (eklenen,silinen,değiştirilen,değiştirilmeyenleri gösterme şeklinde)

41) -R- UPDATESPENDING

Cache bellekte uygulanmaya hazır kayıt olup olmadığını belirtir.
Property UpdatesPending: Boolean;

Bu özelliği, cached updates buffer 'ın durumunu kontrol etmek için kullanın. Eğer true ise bu düzeltilen ,eklenen,silinen kayıtların olduğunu ve bunların güncellenecek olduğunu gösterir. Eğer False ise Cache' te hiçbir kayıt yok demektir


TDATASET 'DEN GELEN ÖZELLİKLER


42) ACTIVE

Tablonun açık olup olmayacağını belirler.
Property Active: Boolean;

Tablonun database ile olan bağlantısını ayarlamak için kullanılır. Active özelliği False ise tablo kapalı yani veri tabanından okuma ve buraya yazma yapılamaz. Eğer true ise veri tabanına yazama ve buradan okuma yapılabilir.

Active' i true yapmak :
BeforeOpen olay çağrısını yapar.
• Dataset State özelliğini dsBrowse 'a ayarlar.
• Tablo içinde bir kursör ayarlar.
• Eğer tanımlandıysa AfterOpen olayını çalıştırır.
Eğer tablo açıkken bir hata oluşursa dataset State dsInactive durumuna ayarlanır ve kursör kapanır.

NOT: Bir uygulama veri tabanının özelliklerini değiştirmeden önce Active' i False olarak ayarlamalıdır. Yoksa bu değişiklikleri yapamaz. Open metodunu çağırmak Active özelliğini true yapar. Close metodunu çağırmak Active özelliğini False yapar.

43) AUTOCALCFIELDS

OnCalcFields olayının nezaman tetikleneceğini belirler.
Property AutoCalcFields: Boolean;

Tablo işlemi boyunca hesaplanmış alanların güncellenmesi için OnCalcFields olayının çalıştırılıp çalıştırılmayacağını belirlemek amacıyla kullanın. Hesaplanmış alan değeri tablodaki bir veya birden fazla alandan etkilenerek bazen de bazı ek işlemlere tabi kalarak oluşur. OnCalcFields true olduğunda ki varsayılan budur, şu durumlarda çalıştırılır
• Tablo açık olduğunda
• Tablo dsEdit durumunda olduğunda
• Veriden -etkilenen ızgara (grid) kontrollerinde ki ( Aktiflik bir görsel kontrolden diğerine veya bir sütundan diğerine hareket eder) ve değişikliklerin kayda yapıldığı durumlarda
• Veri tabanından bir kayıt çağrıldığında


OnCalcFields özelliğininin çağrılma sıklığını düşürmek için AutoCalcFields özelliğini False yapın . AutoCalcFields özelliği False olduğu zaman kayıtlarda bir değişiklik olduğunda OnCalcFields olayı çağrılmayacaktır. Eğer bir uygulama verinin değiştirilmesine izin veriyorsa bu olay sıkça çağrılacaktır. Bu sıklığı azaltmak için Bu özellik False yapılır.

44) -R- BOF

Kursörün tablo içinde , ilk kaydın başında olup olmadığını belirtir.
Property BOF: Boolean;

Bof true ise kursör kesinlikle tablonun ilk satırındadır. BOF aşağıdaki durumlarda true olur :
• Tablo açılır,
• Tablo için First metodu çağrılırsa ,
• Tablo için Prior (önceki) metodu çağrılır ve bu işlem başarısız olursa (çünkü kursör zaten ilk kayıttadır)
• Boş bir kayıtta veya dizide SetRange metodu çağrılırsa.


[FONT=Tahoma][size=2] Diğer tüm durumlarda BOF False 'tur. Bir uygulama yukarıdaki durumlar ve uygulamanın özelliği direkt test etmesi hariç BOF 'u False kabul etmelidirler.

45) BOOKMARK

Tablodaki aktif yer imini belirler.
type
TBookmarkStr: string;
Property Bookmark: TBookmarkStr;

Tablodaki aktif yer imini ayarlamak veya çağırmak amacıyla kullanılır. İşaretleme sayesinde tablodaki bir yer işaretlenir ve daha sonra buraya kolayca ulaşılabilir.

Bir uygulama aktif kayıtla alakalı işareti çağırmak için İşareti okuyabilir ve bu özelliğe sakanmış işaret değerini atayarak tablodaki istenen pozisyona konumlanılabilir.

46) CONSTRAINTS

Dataset 'e yüklenen veriyi düzenlerken kullanılması gereken kayıt düzeyindeki sınırlamaları belirler.
Property Constraints: TCheckConstraints;

Constraint' i kayıt seviyesindeki sınırlamaları okumak veya eklemek için kullanın. Constraints özelliği TCheckConstraint nesnesinin indeksli toplamından oluşur. Bu kısıtlamalar tek bir kayıttaki alanlar arasındaki ilişki üzerine dayandırılarak yapılır.

NOT : Bu özellik çift tıklatıldığında Editing Query1.Constraints penceresi ekrana gelir. ADD ile ekleme yapabiliriz. Properties' indeki Custom Constraint' e koşulları yazın. Error Message ise hata mesajını belirlemek için kullanılır.

 
Alıntı ile Cevapla

Alt 24 Nisan 2007, 20:28   #6
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: SQL VE TQUERY Dev Arşiv...




47) -R- DEFAULTFIELDS

Tablonun temel alan öğelerinin tablo açıldığında dinamik olarak üretilip üretilmediğini belirler.
Property DefaultFields Boolean;

Veri tabanının dinamik alanlar mı yoksa kalıcı alanlar mı kullandığını belirler. Eğer DefaultFields True ise tablo dinamik olarak ayrılan alan öğelerini kullanır. Eğer False ise tablo kalıcı alan öğelerini kullanır. Tablo daima dizayn sırasında Fields Editör kullanılarak kalıcı alan öğeleri bir tabloya atanmadıkça, dinamik alan öğeleri tablo bunu kullanan veri tabanı tablo veya tablolarının yapısına dayanarak oluşturur.

48) -R- DESIGNER

Tablo için table designer' a dizi sonu işareti koyar.
Property Designer: TDataSetDesigner;

Fields Editör gibi Tablo Dizaynırlar da dizayn sırasında programcıya tabloya bağlı alanları belirlemesine izin verirler. Tablo nesnelerinin torunları tablo dizaynır' a Designer özelliğini ayarlama ve getirmek için kullanılan metotları tekrar tanımlamak için kullanılırlar. dataset designer düzenlenmek için açıldığında Designer özelliği boş (nil) ayarlanır. Dataset designer geliştirmecilere dizayn aşamasında datasete ait olan alanları belirleme olanağı sağlar.

49) -R- EOF

Kursörün tablonun sonuna konumlanıp konumlanamadığını belirtir.
Property EOF: Boolean;

Eof ( end of file) true ise kursör kesinlikle tablonun sonundadır. Eof aşağıdaki durumlarda true olur:[/size]

[/FONT]
• Boş bir tablo açıldığında,
• Tablonun Last metodu çağrıldığında,
• Tablonun Next metodu çağrıldığında ve bu işlem başarısız olduğunda
• Boş bir dizi veya tablo üzerinde SetRange çağrıldığında ,


EOF diğer durumlarda False 'tur. Bir uygulama yukarıdaki durumlar ve uygulamanın özelliği direkt test etmesi hariç EOF 'u False kabul etmeliler. Eğer EOF ve BOF aynı anda true ise tablo veya dizi boştur.

50) FIELDCOUNT

Tabloyla ilişkili alan öğelerinin sayısını belirtir.
Property FieldCount: Integer;

Dinamik olarak oluşturulan alanlara sahip tablolar her açıldığında FieldCount sayısı değişebilir. Kalıcı alanlara sahip tablolar için FieldCount tablo her açıldığında aynı değere sahip olmalıdır.

51) FIELDDEFS

Tablo için alan tanımlama listesini işaret eder.
property FieldDefs: TFieldDefs;

Bir uygulama FieldDefs' i tablo için alan tanımlamalarını araştırmak amacıyla incelerken CreateTable ile yeni bir tablo oluşturmadıkça bu tanımlamaları değiştirmemelidir. FieldDefs öncelikli olarak Tdataset ve torunlarının diğer özellikleri, metotları ve olaylarında dahili olarak kullanmak için üretilmiştir.

Tablodaki alanlara ve bunların değerlerine erişmek için Field ve FieldValues özelliklerini ve FieldsByName metodunu kullanın.
Aşağıdaki örnek yeni bir tablonun nasıl oluşturulduğunu gösterir

with Table1 do
begin
Active := False; { Table öğesi aktif olmalıdır }

{ İlk önce table tipini belirle ve buna bir isim ver}
DatabaseName := 'DBDEMOS';
TableType := ttParadox;
TableName := 'CustInfo';

{ Tablodaki alanları tarif et}
with FieldDefs do
begin
Clear;
Add('Field1', ftInteger, 0, True);
Add('Field2', ftString, 30, False);
end;

{ Indexleri tanımla }
with IndexDefs do
begin
Clear; { İlk indexin ismi yok çünkü bu Paradox primary key dir }
Add('', 'Field1', [ixPrimary, ixUnique]);
Add('Fld2Indx', 'Field2', [ixCaseInsensitive]);
end; { Özellklerini belirlediğimiz tabloyu oluşturalım }
CreateTable;
end;


52) FIELDS

Tablodaki tüm alan öğeleri için indeksli bir dizi sağlar.
Property Fields[Index: Integer]: TField ;

Alan öğelerine index numarasıyla erişmek için bunu kullanın. Fields 0 tabanlı bir dizidir. Eğer bu tablodaki alanlar dinamik olarak oluşturuluyorsa alan öğelerinin sırası tablodaki sütunların sırasına göre değişir. Eğer tablo sabit alanlar kullanıyorsa alan öğelerinin sırası dizayn zamanında Fields Editörce belirlenen sıradadır.

Alanlara Fields özelliği ile ulaşmak aşağıdaki uygulamalar için kullanışlıdır:
• Tablodaki bazı veya tüm alanlarda dolaşmak için
• Çalışma anında yapıları bilinmeyen altı çizili tablolar için


Eğer bir uygulama her alanın veri tipini biliyorsa bu alanlar Fields özelliğini kullanarak okuma-yazma yapabilir. Örneğin aşağıdaki satırlar Bir alanın değerini editbox 'ın Text özelliğine atıyor.
Edit1.Text := CustTable[6].AsString;

Aşağıdaki ifade ise editbox' tan alana değer aktarır.
CustTable.Edit;
CustTable.Fields[6].AsString := Edit1.Text;
CustTable.Post;
NOT : Alan çağırma veya alanlara değer aktarma için tercih edilen metot FieldsByName metodudur veya bunların kalıcı alanlar için yapılmasıdır.

53) FIELDVALUES

Tablodaki aktif kayıttaki tüm alanlardaki değerlerine erişmeyi sağlar.
Property FieldValues[const FieldName: string]: Variant;

Bu özellik tablodaki alanlara değer yazmak ve buralardan değer okumak için kullanılır. Fieldname yazılacak veya okunacak alandır ve tek tırnak içinde yazılmalıdır.

FieldValues değişken alır ve gönderir bu yüzden her türden veri taşıyabilir ve çevirebilir. FieldValues TdataSet için varsayılan özellik olduğundan bu özelliği referans ederken özellik adını atlayabilirsiniz.

Örneğin aşağıdaki iki ifade aynı işi yapar: editbox ' taki değeri integer alana aktarır.
Customers.FieldValues['CustNo'] := Edit1.Text;
Customers['CustNo'] := Edit1.Text;

Aşağıdaki ifade alandan bir string ifade okur ve editbox 'a atar
Customers.Edit;
Edit1.Text := Customers['Company'];
Customers.Post;

NOT : FieldValues her zaman değişkenleri kullandığı için ,özellikle büyük miktarda veri işleyen uygulamalarda ,veriye ulaşmak için alanın doğal formatını ( AsXXX özelliği) kullanmaktan daha yavaş bir yol olabilir.

54) -R- FOUND

Başka bir kayda dallanma işleminin başarılı olup olmadığını belirtir.
Property Found: Boolean;

Bu özelliği FindFirst, FindLast, FindNext veya, FindPrior metotlarının başarılı olup olmadığını anlamak için kullanabilirsiniz. Eğer Found true ise işlem gerçekleştirildi . False ise başka bir kayda geçme işlemi gerçekleşemedi anlamı taşır.

55) -R- MODIFIED

Aktif kaydın değiştirilip değiştirilmediğini belirtir.
Property Modified: Boolean;

Eğer true ise aktif kayıt değiştirilmiştir.
NOT: Genelde Modified özelliğini kontrol etmek gereksizdir. Tdataset' in ve bunun torunlarının özellikleri, olayları ve metotları bunu otomatik olarak kont-rol ederler ve bunun değerine göre uygun davranışları gösterirler.

56) NAME

Diğer öğelerce referans edilen dataset' in ismini verir.
type
TComponentName: string;
Property Name: TComponentName;

Name özelliğini dataset'in adını aktif uygulamadaki amacını yansıtmak için değiştirmede kullanın. Varsayılan olarak Delphi, öğenin tipine bağlı olarak öğelere sırasal numaralar verir
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
table1,table2..
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
de olduğu gibi. Dataset ismi dizayn sırasında değişirse bu ismi ,alan isminin ön eki olarak kullanan alan öğeleri varsa bunlarda yapılan değişiklikten etkilenirler

 
Alıntı ile Cevapla

Alt 24 Nisan 2007, 20:28   #7
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: SQL VE TQUERY Dev Arşiv...




57) -R- STATE

Dataset 'in aktif işletim modunu belirtir.
type
TDataSetState = (dsInactive, dsBrowse, dsEdit, dsInsert, dsSetKey, dsCalcFields,dsFilter, dsNewValue, dsOldValue, dsCurValue);
Property State: TdataSetState;

State tablodaki verinin bulunduğu durumu bildirir. Gösterme, düzenleme, ekleme,filitreleme gibi. Tablonun State özelliği ,uygulama veriyi işledikçe sürekli değişir. Aşağıdaki liste State in alabileceği tüm değerleri ve bunların anlamını belirtir.
Değer Anlamı
dsInactive Tablo kapalı,yani kullanılamaz
dsBrowse Data görülebilir ama değiştirilemez. Bu açık tablonun varsayılan durumudur
dsEdit Aktif kayıt değiştirilebilir.
dsInsert Yeni bir kayıt eklenebilir.
dsCalcFields OnCalcFields olayı işlemektedir .Hesaplanmamış alanlar düzeltilemez ve yeni kayıtlar eklenemez.
dsFilter OnfilterRecord olayı aktifse Hesaplanmamış a lanlar düzeltilemez ve yeni kayıtlar eklenemez.
dsNewValue Tfield.NewValue özelliğine erişildiğini belirtmek için geçici durum dahili olarak kullanılır.
dsOldValue Tfield.Old.Value özelliğine erişildiğini belirtmek için Geçici durum dahili olarak kullanılır.
dsCurValue Tfield.Cur.Value özelliğine erişildiğini belirtmek için geçici durum dahili olarak kullanılır.
dsSetkey Yalnızca Ttable .Kayıt aramak mümkün veya SetRange işlemi yapılabilir. Sınırlı veri kümesi görülebilir ama kayıt eklenemez veya düzeltilemez.


Tablo açılınca State dsInactive 'den dsBrowse' a geçer. Bir uygulama Edit' i tabloyu edit moduna, Insert' ü dsInsert durumuna geçirmek için çağırabilir. Eğer tablo Ttable öğesi ise uygulama tabloyu dsSetKey durumuna getirmek için Setkey veya Setrange metotlarını çağırır.

Düzenlemeleri kaydetmek veya iptal etmek,eklemeler veya silmeler yapmak State' i aktif durumundan dsBrows' e durmuna geçirir. Tabloyu kapatırsanız State dsinactive olur. Bazı durumlar ki(dsCalcFields, dsFilter, dsNewValue, dsOldValue, ve dsCurValue) bir uygulamaca direkt olarak değiştirilemeyen durumlardır. Bu durumlar OnCalcFields ve OnFilterRecord olayları oluştuğunda veya uygulama Tfield.XXXValue özelliğine eriştiğinde ortaya çıkar


TCOMPONENT' DEN KALITIMSAL GELEN ÖZELLİKLER


58) -R- COMOBJECT

ComObject COM 'u destekleyen öğelerce uygulanan arabirim referansını döndürür.
property ComObject: IUnknown;

Bu özellik COM arabirimini destekleyen VCL öğelerince kullanılır. Eğer öğe COM öğesini desteklemiyorsa ComObject EcomponentError hatasını üretir.

59) -R- COMPONENTCOUNT

Öğe özellik listesinde listelendiği gibi bir öğenin sahip olduğu öğe sayısını belirtir.
property ComponentCount: Integer;

Bu özellik Delphi'de bileşenler arasında ilerleme işlemleri için dahili olarak kullanılır. Bu sayı Component indeks sayısından bir fazladır .Çünkü indeks 0 dan başlar.

60) COMPONENTINDEX

ComponentIndex öğenin ,atasının öğe dizi özellik listesindeki yerini belirtir.
property ComponentIndex: Integer;

ComponentIndex bileşen listesi içinde sahip olunan nesneler üzerinde bazı işlemler yapmak için ilerlemeniz gerektiğinde kullanırız. Bu özellik dahili olarak kullanılır. Listedeki ilk öğenin indeks nosu 0 dır. İkincisi 1 ve ...
Bu yüzden ComponentCount daima Componentindexin olabileceği maksimum rakamdan 1 fazladır

61) -R- COMPONENTSTATE

ComponentState bazı belli işlemlerden sakınmak için öğenin o anki aktif konumunu belirtir.
type
TComponentState = set of (csLoading, csReading, csWriting, csDestroying, csDesigning, csAncestor, csUpdating, csFixups);
property ComponentState: TComponentState;

Component 'ler bu özelliği belli işlemlerin yapılmasına izin verip vermemek için belirleyici olarak kullanırlar. Örneğin eğer bir öğe çalışma esnasında işlenecek ama dizayn esnasında bazı işlemlerin gerçekleşmemesini istiyorsa csDesigning bayrağını kontrol edebilir. Bu özellik değiştirilemez ve her bir bayrağı çeşitli metotlarca otomatik olarak ayarlanır. TcomponentState tipi ComponentState özelliği için var olan durumları belirtir.
BAYRAK Nesne durumu
csAncestor csDesigning aktifse ve nesne bir ata formunda tanıtıldıysa kullanın
csDesigning Nesnenin Form Designerca işlenmekte olduğu durumdur CsDestroying nesnenin değiştirilmekte olduğu
csLoading Filer nesnesinden yükleniyor.
csReading Özelliklerini akışından okuyorsa
csUpdating Değişiklikleri ata forma yansıtmak için nesne güncelleniyorsa. Bu csAncestor aktif edildiyse aktif edilir.
csWriting Özellik değerlerini akışa yazıyorsa
csFixups Daha yüklenmemiş başka bir formdaki nesneye bağlantı yapıldıysa .Bu özellik bütün kararlaştırılmış fixuplar yeniden çözüldüğünde sıfırlanır.


62) -R- COMPONENTSTYLE

Öğenin hareketlerini yöneten stil için bir bayrak aktif eder.
type TComponentStyle = set of (csInheritable, csCheckPropAvail);
property ComponentStyle: TComponentStyle;

Bu tip ComponentStyle için bir dizi değer tanımlar.

63) DESIGNINFO

Form Dizaynır'ca kullanılan bilgiyi taşır
property DesignInfo: Longint;

Delphi çevre birimlerince dahili olarak kullanılır. Bu özelliği uygulamalarda kullanmayınız.

64) -R- OWNER

Bu nesnenin sahibinin hangi nesne olduğunu belirtir.
property Owner: TComponent;

Bir nesne diğerince sahiplendiği zaman sahiplenen nesne için ayrılan hafıza serbest bırakıldığında , bu nesne için ayrılan hafıza da serbest bırakılır. Bu bir form düzenleneceği zaman bütün nesnelerin düzenlenme moduna geçtiği anlamına gelir.

Örneğin Delphi de tüm nesnelerin sahibi global application nesnesidir. Form üzerine yerleştirilen ve bir owner isteyen tüm nesneler içinde sahip form'dur.

Öğenin sahibi öğe yapılandırıldığı zaman Create metoduyla verilen parametrece belirlenir. Delphi Form Designerca oluşturulan öğelerin sahibi otomatik olarak yapıya geçirilir.
LABEL1.Caption:=QUERY1.Owner.ClassName;
LABEL2.Caption:=QUERY1.Owner.Name

65) TAG

Tag öğenin bir parçası olarak bir sayısal (integer) değer saklar.
property Tag: Longint;

Tag'ın önceden tanımlanan bir anlamı yoktur. Uygulamalarda özel olarak bir sayısal değer saklamak amacıyla kullanılır. Programlamada kullanıcıya kolaylık sağlar. Mesela case durumlarında bunu kullanabilirsiniz.

66) VCLCOMOBJECT

COM destekleyen öğelerce dahili olarak kullanılır.
property VCLComObject: Pointer

VCLCOM öğelerince işlenen arabirimlere erişmek için kullanın.


3.4- TQUERY METOTLARI

TQUERY METOTLARI
Create
Destroy
ExecSQL
ParamByName
Prepare
UnPrepare

TDBTABLE 'dan devralınan
CheckOpen
CloseDatabase
OpenDatabase

TBDETABLE 'dan devralınan

ApplyUpdates
BookmarkValid
Cancel
CancelUpdates
CommitUpdates
CompareBookmarks
ConstraintCallBack
DisableConstraints
EnableConstraints
FetchAll
GetCurrentRecord
GetIndexInfo
Locate
Lookup
RevertRecord
UpdateStatus
TDataset' den Gelen
ActiveBuffer
Append
AppendRecord
CheckBrowseMode
ClearFields
Close
ControlsDisabled
CursorPosChanged
Delete
DisableControls
Edit
EnableControls
FieldByName
FindField
FindFirst
FindLast
FindNext
FindPrior
First
FreeBookmark
GetBookmark
GetFieldList
GetFieldNames
GotoBookmark
Insert
InsertRecord
IsEmpty
IsLinkedTo
Last
MoveBy
Next
Open
Post
Prior
Refresh
Resync
SetFields
Translate
UpdateCursorPos
UpdateRecord

TComponent'dan devralınan
DestroyComponents
Destroying
FindComponent
FreeNotification
FreeOnRelease
GetParentComponent
HasParent
InsertComponent
RemoveComponent
SafeCallException


TPersistent' dan devralınan
Assign
GetNamePath
ClassInfo' dan Gelen
ClassName
ClassNameIs
ClassParent
ClassType
CleanupInstance
DefaultHandler
Dispatch
FieldAddress
Free
FreeInstance
GetInterface
GetInterfaceEntry
GetInterfaceTable
InheritsFrom
InitInstance
InstanceSize
MethodAddress
MethodName
NewInstance

 
Alıntı ile Cevapla

Alt 24 Nisan 2007, 20:29   #8
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: SQL VE TQUERY Dev Arşiv...




TQuery Metotları

1) CREATE

Örnek bir query nesnesi oluşturur.
constructor Create(AOwner: TComponent);

Bu çağrı boş bir SQL ifade listesi oluşturur. SQL durum listesi için Onchange olay durumunu ayarlar. Data link (veri bağlantısını ) kurar. Requestlive özelliğini False yapar, ParamCheck özelliğini true yapar ve RowsAffected 'ı -1 yapar.

2) DESTROY

Query nesnesini yokeder.
destructor Destroy;

Destroy çağrısını direk olarak çağırır. Bunu çağırmak yerine Free methodunu çağırın ve query'nin daha önceden serbest bırakılmadığından emin olun .Destroy serverdan bağlantıyı keser, SQL ifadesini, parametre listesini,veri bağlantısını, SQL ikili saklama bölgesini temizler ve kendisinin kalıtsal Destroy işlemini başlatır.

3) EXECSQL

Query için SQL ifadesini çalıştırtır.
procedure ExecSQL;

Execsql' i INSERT,DELETE,UPDATE çağrılarını yapmak için kullanın. Aynı zamanda veri tanımlama durumlarını çalıştırmak için de kullanılır

NOT: Select ifadelerinde Execsql yerine Open 'ı kullanın.

Execsql eğer SQL hazırlanmadıysa SQL' in çalıştırılması için SQL ifadesi oluşturur. Hız artırmak için ExecSQL ilk defa çağrıldığında , bundan önce Prepare çağrısı kullanılmalıdır.
Örnek:
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('Delete from Country where Name = ''Argentina''');
Query1.ExecSQL;

4) PARAMBYNAME

Özel parametre ismine dayanan parametre bilgisine ulaşır.
function ParamByName(const Value: string): TParam;

Value getirilecek bilginin parametre ismidir. ParamByName parametrenin değerini çalışma anında değiştirmek için kullanılır.

Örneğin aşağıdaki ifade Soyad adı verilen parametredeki aktif değeri bir edit kutusuna alır.
Edit1.Text := Query1.ParamByName(' Soyad ').AsString;
Select ifadelerinde parametreler boş olamaz fakat Update ve Insert ifadelerinde boş olabilir.

Örnek2
var Buffer: Pointer;
{ Custno alanının hafızada tutabilmek için gerekli yer ayır}
GetMem(Buffer, Query1.ParamByName('CustNo').GetDataSize);
{ Datayı al }
Query1.ParamByName('CustNo').GetData(Buffer);

5) PREPARE

BDE' ye ve sunucuya yürütme öncesi optimizasyon için bir sorgu gönderir.
procedure Prepare;

Prepare' ı BDE' ye sahip olmak için ve uzak veri tabanı sunucusunu sorgu için kaynaklarını yerleştirmesi ve ek optimizasyonlar gerçekleştirmesini sağlamak için kullanın. Prepare' ı uygulamadan önce çalıştırmak performansı artırır. Sorgu işi bitince Unprepare yapmak performans yönünden iyi olur.

NOT: Bir sorgunun yazısını çalışma anında değiştirirseniz sorgu otomatikman kapanır ve UnPrepare yapılır.

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

6) UNPREPARE

Daha önceden hazırlanan sorgu için ayrılan kaynakları boşaltır.
procedure UnPrepare;

UnPrepare metodunu ,server ve client lardaki daha önceden hazırlanan sor-gular için ayrılan kaynakları serbest bırakmak amacıyla çağırın. Query met-nini çalışma anında değiştirirseniz query otomatik olarak kapanır ve Unprepare metodu çağrılır.

TDBDataSet' den Gelen Metotlar

7) CHECKOPEN

Borland Database Engine (BDE) çağrısının sonucunu kontrol eder.
function CheckOpen(Status: DBIResult): Boolean;

CheckOpen' ı bir BDE çağrısının tabloya erişmek isterken hata döndürüp döndürmediğini belirlemekte kullanın. Durum bir önceki çağrının dönüş sonucudur. Eğer erişim başarılıysa true döner. Eğer durum Paradox tablosuna erişmek için yeterli haklara sahip olunmadığını belirtiyorsa CheckOpen veri tabanı oturumunun GetPassword moduyla kullanıcıya şifreyi girmesini ister. Eğer doğru şifre girilirse sonuç true olur. Diğer durumlarda tablo erişim işleminin başarılamadığını belirten False görünür

8) CLOSEDATABASE

Veri tabanı oturumu ile ilişkilendirilen veri tabanı bağlantısını keser.
procedure CloseDatabase(Database: TDatabase);

Bu metodu kalıcı veya geçici veri tabanı bağlantısını kesmede kullanılır. Bu çağrı veri tabanı öğe referans sayısını azaltır ve bu sayı 0 olursa ve veri tabanı öğesinin KeepConnection özelliği False ise bu çağrı hem geçici hem de kalıcı veri tabanı öğelerin ilişkisini keser.

NOT: Kalıcı veri tabanı için bu metot çağrıldığında bağlantı kesilmez bunun için veri tabanı öğesinin Close metodunu direk olarak çalıştırmak gerekir.
Geçici veri tabanı öğeleri veri tabanıyla ilişkilendirilen son tablo kapandığında otomatik olarak kapanır. Fakat bir uygulama bu işi daha erken yapmak isteyebilir. Eğer oturumun KeepConnections özelliği true ise (Varsayılan budur) geçici veri tabanı öğesiyle kurulan bağlantı bu çağrıyla kapanmaz. Veri tabanı nesnesini serbest bırakmak için bağlantılarını kapattıktan sonra oturumun DropConnections metodunu çağırın.

9) OPENDATABASE

Tablo içeren veri tabanını açar.
function OpenDatabase: TDatabase;

OpenDatabase' i tablo içeren veri tabanına bağlanmak veya geçici veri tabanı öğesi oluşturup veri tabanına bağlamak için kullanınız. DatabaseName özelliği açılacak veri tabanını belirtir. OpenDatabase şu anki oturumu aktif yapar. DatabaseName özelliğinin var olan veri tabanı nesnesinin özelliklerine uyup uymadığına bakar. Uymuyorsa OpenDatabase geçici veri tabanı nesnesi oluşturur. Bunu da DatabaseName parametresini DatabaseName özelliğine atayarak yapar. Sonunda OpenDatabase veri tabanının Open metodunu veri tabanı sunucusuna bağlanmak için çağırır. Daha sonra oturumun veri tabanı referans sayısını bir artırır.


TBDEDATASET' DEN GELEN METOTLAR

10) APPLYUPDATES

Cache bellekteki tablo bilgilerini veri tabanına yazar.
procedure ApplyUpdates;

Bu metotla cache bellekteki bilgiler saklanmak amacıyla veri tabanına alınır ama değişiklikler veri tabanına işlenmez . Uygulama açık bir şekilde veri tabanı öğelerinin Commit metodunu ,eğer yazma başarılıysa ,onaylamak için çağırmalıdır. Veya veri tabanının Rollback metodunu eğer hata varsa, geri almak amacıyla kullanınız.

Veri tabanına başarılı bir yazma işleminden ve veri tabanının Commit metoduna yapılan başarılı bir çağrıdan sonra uygulama CommitUpdates metodunu ön belleklenmiş (cache) tampon belleğini temizlemek amacıyla çağırmalıdır.

NOT: Her bir tablonun ApplyUpdates metodunu çağırmaktansa veri tabanı öğesinin ApplyUpdates metodunu çalıştırmak daha doğru bir iş olacaktır.
Veri tabanının ApplyUpdates metodu değişiklikleri onaylama veya transferleri geri alma işlemlerini otomatik yaptığı gibi işlem tamamlanınca cache belleği değişken temizler.

StartTransaction, ApplyUpdates, Commit, Rollback Örneği
Aşağıdaki prosedür bir tuş ile nasıl tablonun değişikliklerinin kaydedileceğini gösterir.
procedure ApplyButtonClick(Sender: TObject);
begin
with CustomerQuery do
begin
Database1.StartTransaction;
try
ApplyUpdates; {database'e değişiklikleri yaz};
Database1.Commit; {hata yoksa onayla };
except
Database1.Rollback; {hata varsa değişiklikleri geri al};
raise; {hata durumu oluştur}
end;
CommitUpdates; {Başarı durumunda cache'i temizle}
end;
end;

11) BOOKMARKVALID

Belirtilmiş yer iminin geçerliliğini test eder.
type TBookmark = Pointer;
function BookmarkValid(Bookmark: TBookmark): Boolean; override;

Belirtilen yer iminin doğru bir değere atanıp atanmadığını kontrol etmek için kullanılır. Bookmark test edilecek yer iminin ismidir.
BookmarkValid yerimi doğruysa true , aksi halde False döndürür.

12) CANCEL

Eğer aktif kayıt kaydedilmediyse yapılan düzenlemeleri iptal eder.
procedure Cancel;

Cancel kaydı önceki konumuna döndürür ve tablo durumunu dsBrowse' a getirir. Bu metot o alana illegal veri girildiğinde veya kullanıcı istediği zaman çağrılır. Örneğin TDBNavigator bileşeni bir Cancel düğmesi içerir.

Aşağıdaki örnek kullanıcıya değişiklikleri onaylamasını isteyen bir diyalog görüntüler .Kullanıcı Yes' e basarsa değişiklikler kaydedilecek yoksa iptal edilecek.
if MessageDlg('Update Record?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
Table1.Post
else
Table1.Cancel;

13) CANCELUPDATES

Cache' teki tablonun güncellenmiş haline ait verileri siler ve tabloyu eski konumuna döndürür.
procedure CancelUpdates;

Tablo kapandıysa veya CachedUpdates özelliği False ayarlandıysa CancelUpdates otomatik olarak çağrılır.

NOT: Tek bir kaydı geri almak için RevertRecord 'u kullanın.

14) COMMITUPDATES

Cache'teki güncellenmiş tampon belleği temizler
procedure CommitUpdates;

CommitUpdates 'i ApplyUpdates' i başarıyla uyguladıktan sonra ve veri tabanı öğelerinin Commit metodundan sonra tampon belleği temizlemek için kullanın. Güncellemeleri yaptıktan sonra cache belleği temizlemek demek cache'in boşalacağını şu durumlar hariç garanti eder: işlenemeyecek kayıtlar ve OnUpdate Record ve OnUpdateErrror durum olay kontrollerince atlanan kayıtlar .

Bir uygulama kayıtları cache' teyken bile değiştirmeye çalışabilir .
CommitUpdates' ten sonra yapılan kayıt düzenlemeleri cached update bufferını tekrar kullanılabilir hale getirir ve yapılan değişikliklerin veri tabanına kaydedilmesi için bir alt çağrıya ihtiyaç duyar.

15) COMPAREBOOKMARKS

İki bookmark arasındaki ilişkiyi belirler.
Type TBookmark = Pointer;
function CompareBookmarks(Bookmark1, Bookmark2: TBookmark): Integer;

İki bookmark'ın aynı olup olmadığını belirlemek için kullanın. Eğer bookmarklar farklı ise 1 döndürür, aynıysa veya ikisi de boş ise 0 döndürür.

16) CONSTRAINTCALLBACK

ConstraintCallBack tablonun BDE sabit katmanıyla ilişki kurmasına izin veren bir geri çağrım fonksiyonudur.
function ConstraintCallBack(Re
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
DsInfoReq; var ADataSources: DataSources): DBIResult; stdcall;


Bazı BDE fonksiyonları tabloda veya kendi alanındaki sabitler hakkında bilgi sağlanması için bir ger çağrıma ihtiyaç duyarlar. ConstraintCallBack' in adresini bu fonksiyonlara direk API çağrısı yaparken parametre olarak kullanın.

17) DISABLECONSTRAINTS

Tablodaki sunucu sabitlerinin uygulamalarını pasif yapar.
procedure DisableConstraints;

Sunucu sabit uygulamalarının geçici kaynakta yer işgal etmesini engellemek için kullanırız. Uygulama tablo içinde ilerlerken sabitleri geçici olarak pasif yaparak performansı artırır.

NOT: DisableConstraints' i çağırmak referans sayısını artırır. Referans sa-yısı 0 dan fazla olduğu sürece tablo için sabitler pasif yapılır. Sabitleri yanlışlıkla pasif yapmamak için çağrılarınızı gruplandırın.

18) ENABLECONSTRAINTS

Tablo girişleri için sunucu sabit uygulamalarını aktif eder.
procedure EnableConstraints;

Bu çağrıyı daha önceden DisableConstraints ile pasif edilen uygulama sunucu sabitlerini aktif etmek için kullanın.

NOT: Bu çağrıyı kullanmak referans sayısını azaltır. Bu referans sayısı 0 ise tablo için sabitler aktif olur. Sabitleri yanlışlıkla pasifleştirmemek için bunu kullanın.

 
Alıntı ile Cevapla

Alt 24 Nisan 2007, 20:30   #9
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: SQL VE TQUERY Dev Arşiv...




19) FETCHALL

Aktif kursörün olduğu pozisyondan itibaren dosyanın sonuna kadar olan tüm kayıtları getirir ve onları yerel olarak saklar.
procedure FetchAll;

Cachelenmiş güncellemeleri kullanırken network trafiğini düşürmek için kullanın. FetchAll ChecekBrowseMod' u yapılan değişiklikleri kaydetmek için kullanır. Sonra kursörün bulunduğu yerden itibaren tüm kayıtları çağırır ve saklar.

Genellikle cache güncellenmeler aktif edildiklerinde görüntülenecek bilgi kadar veri çağrılır. her yeni getirme olayı yalnızca okunabilir bir transaction başlatır. Transferleri sağlamlaştırmak ve network trafiğini azaltmak için uygulama fetchall çağrısını kullanır.

NOT: Bu çağrıyı yapmak network ortamında aynı anda birden fazla kullanıcının aynı kayda ulaşmaya çalışması ve değişiklik yapmak istemesi yüzünden güvenilirlik ve kullanışlılık açısından sakıncalıdır.

20) GETCURRENTRECORD

Aktif kaydı tampon belleğe çağırır.
function GetCurrentRecord(Buffer: PChar): Boolean;

Çoğu uygulamalar .GetCurrentRecord a ihtiyaç duymazlar. Ttable otomatik olarak aktif kaydı belleğe yerleştirir. Buffer en az RecordSize ile belirtilen boyut kadar olmalıdır.

21) GETINDEXINFO

Tablonun indeks veri alanlarına aktif indeks hakkındaki bilgileri çağırır .
procedure GetIndexInfo;

GetIndexInfo 'yu aktif indeks hakkındaki bilgiyi güncelleştirmek için çağır. Genellikle bir uygulama bu çağrıya ihtiyaç duymaz. Bazı uygulamalar yinede kullanmaları gerekir. GetIndexInfo BDE 'yi şu bilgileri de içererek sorgular.
Aktif indeks bir Dbase indeksimi? indeks büyük-küçük harf duyarlı mı ? , İndeksi oluşturan alan sayısı , İndeks için alan haritası , İndeks anahtarının boyutu. İndeks eğer Dbase indeksi ise alan sayısı ve alan haritası çağrılmaz.

22) LOCATE

Tablo içinde özel bir kaydı arar ve onu aktif kaydı arar.
type
TLocateOption = (loCaseInsensitive, loPartialKey);
TLocateOptions = set of TLocateOption;
function Locate(const KeyFields: string; const KeyValues: Variant; Options: TLocateOptions): Boolean;

Anahtar alan bir string olup virgülle ayrılmış aranacak isimlerin bulunduğu bir alanı içerir. Anahtar değer anahtar alandaki değerlerle eşleşen farklı bir dizidir. Çoklu arama değeri belirtebilmek için anahtar değeri değişken dizisi olarak giriniz. Vararrayof komutuyla dizi yapısı oluşturulur.

with CustTable do
Locate('Company;Contact;Phone', VarArrayOf(['Sight Diver', 'P']), [loPartialKey]);

Options ek arama seçenekleri sunan bir dizidir. Eğer Options IoCaseInsentive ayarlar içeriyorsa Locate büyük harf ayarına uymayanları atlar. Eğer Options IoPartialKey ayarlarını içeriyorsa Locate verilen anahtarın belli bir kısmına uyan ilk kayda konumlanır. Eğer Options boş bir set ise veya anahtar alan string alan değilse Options atlanır.

Locate aranılan kaydı bulursa true döndürür ve onu aktif kayıt yapar. Diğer hallerde Locate False döndürür.Locate eşlenen kayda ulaşmak için en hızlı metodu kullanır. Eğer indeks varsa ve aranılan değer de bu indeks alanıyla aynıysa Locate indeksi kullanır. Yoksa Locate arama için filtre üretir.

23) LOOKUP

Arama değerlerine eşit olan kayıtlardaki değerleri getirir.
function Lookup(const KeyFields: string; const KeyValues: Variant; const ResultFields: string): Variant;

Lookup 'ı belirlenmiş alanlara arama kriterine eşit olan kayıtlardan değerler getirmek için kullanın. Anahtar alan virgülle ayrılmış aranacak olan alan isimlerinin listesidir. Çoklu arama değerleri belirtebilmek için KeyValues' ü değişken dizisi olarak , argüman olarak girin.

24) REVERTRECORD

Cached güncellemeler aktif olduğunda aktif kaydı unmodified durumuna yeniden yükler.
Procedure RevertRecord;

Bunu yapılan değişiklikleri geri almak için kullanın. Yalnız cached güncellemeler aktif olduğu zaman yapın.

NOT: Cache teki bütün değişiklikleri iptal etmek için CancelUpdates' i çağırın.
Örnek : Cachelenmiş güncellemeler enable olduğunda silinen kayıtları kurtarmayı gösteren bir örnek program.
procedure UndeleteAll(DataSet: TDataSet);
begin
with DataSet do
begin
UpdateRecordTypes := [rtDeleted]; {sadece silinen kayıtlar görünür olacak }
try
First;
while not EOF do
begin
RevertRecord; {aktif kaydı kurtar}
Next;
end;
finally
UpdateRecordTypes := [rtModified, rtInserted, rtUnmodified];
end;
end;
end;


25) UPDATESTATUS

Tablonun aktif güncelleme durumunu rapor eder.
type UpdateStatus = (usUnmodified, usModified, usInserted, usDeleted);
function UpdateStatus: TUpdateStatus;

Update durumu kayıtlar düzeltildikçe, eklendikçe, silindikçe sık sık değişir.
UpdateStatus metodunun geri dönüş değerlerinden bazıları şunlardır.
UsUnmodified Kayıt değiştirilmemiş
UsModified Kayıt değiştirilmiş
UsInserted Kayıt eklenmiş
UsDeleted Kayıt silinmiş.

TDATASET' den devralınan Metotlar

26) ACTIVEBUFFER

Aktif kayıt için tampona pointer döndür .
function ActiveBuffer: PChar;

ActiveBuffer ın , aktif kaydın bufferına işaret ettiğinden emin olmak için tablo yöntemleri tarafından dahili olarak kullanılır . Eğer uygulama , varolan tablo yöntemlerini kullanırsa , aktif tampon her zaman, true olarak ayarlanılır . Bundan dolayı ActiveBuffer' ı doğrudan çağırmaya genellikle gerek yoktur . Aynı zamanda ActiveBuffer yer imi metotlarınca yerimi bilgisini getirmek için kullanılır.

Özel tablo yöntemleri gerektiren uygulamalar tampon veriye erişmek için ActiveBuffer' ı çağırırlar. Özellikle veri tabanındaki kayıtlar arasında ilerlerken bu daha çok lazımdır. Bu durumlarda bile eğer özel yöntemler Next , Prior gibi metotları çağırırsalar aktif tampon otomatik olarak ayarlanır.

27) APPEND

Tablonun sonuna yeni , boş kayıt ekler .
Procedure Append;

Append' i şunlar için kullanın.
1) Tablonun sonunda yeni , boş kayıt açmak ,
2) Yeni kaydı aktif kayıt olarak ayarlamak,

Append çağrısı yapıldıktan sonra uygulama kayda veri girebilir ve bunları post çağrısıyla kaydedebilir. Yenice eklenen kayıt , aşağıdaki üç yolun biriyle veri tabanına kaydedilir .
a) İndekslenmiş paradox ve dbase tabloları için kayıt , dizinine dayanılan
konumda tablo içine eklenir .
b) Indekslenmemiş paradoxu ve dbase tabloları İçin , kayıt , tablonun sonu-na eklenilir .
c) Sql veri tabanları için , eklemenin fiziksel yerleşimi özel yapılır.
d) İndekslenmiş tablolar için , dizin , yeni kayıt bilgisi ile güncelleştirilir .


Örnek : Bu örnek butona tıklandığında yeni bir kayıt ekler. Alfanumeric ve integer adlıiki alan iki edit kutusundaki değerce doldurulur.
procedure TForm1.Button1Click(Sender: TObject);
begin
Table1.Append;
Table1.FieldValues['ALPHANUMERIC'] := Edit1.text;
Table1.FieldValues['INTEGER'] := StrToInt(Edit2.text);
Table1.Post;
end;


28) APPENDRECORD

Veri tabanının sonuna yeni bir kayıt ekler.
procedure AppendRecord(const Values: array of const);

Tablonun sonunda yeni , boş kayıt oluşturmak için AppendRecord' u çağırır ve veri tabanına değerleri kaydeder . Yeni eklenilen kayıt , aşağıdaki üç yo-lun biriyle veri tabanına kaydedilir .

İndekslenmiş Paradox ve Dbase tabloları için , kayıt , onun dizinine dayanan konumda tablo içinde araya eklenilir . İndekslenmemiş Paradox ve Dbase tabloları İçin , kayıt , tablonun sonuna eklenilir . Sql veri tabanları için , eklemenin fiziksel yerleşimi özel yapılır. . İndekslenmiş tablolar için , dizin , yeni kayıt bilgisi ile güncelleştirilir . Yeni eklenilen kayıt , aktif kayıttır .

Örnek:
Customer.AppendRecord([CustNoEdit.Text,CoNameEdit.Text, AddrEdit.Text, Null, Null, Null, Null, Null, Null, DiscountEdit.Text]);
NOT : Eğer dizinin sonunda belli bir değer yoksa Null yazmanıza gerek yoktur. Burada en son eleman DiscountEdit.Text olduğu için aradakileri Null ile belirtmemiz gerekir.

29) CHECKBROWSEMODE

Uygulama aktif kaydı değiştiren bir metodu çağırdığında otomatik olarak değişiklikleri kaydeder veya iptal eder.
Procedure CheckBrowseMode;

Tablonun durumu , dsEdit , dsInsert veya dsSetkey durumu olduğunda ve başka bir kayda bağlanan bir metot çağrıldığında CheckBrowseMode , aktif kayıtta yapılan değişikliklerin veri tabanına kaydedildiğinden emin olmak için bir çok tablo yöntemi tarafından dahili olarak kullanılır . Eğer durum , dsEdit veya dsInsert olsa , CheckBrowseMode , UpdateRecord 'u çağırır ve sonra , eğer tablo için değiştirilmiş özellik , true olursa , CheckBrowseMode, Post' u çağırır . Modified False ise CheckBrowseMode Cancel' ı çağırır. Eğer durum , dsSetkey olsa , CheckBrowseMode, Post' u çağırır .

Eğer durum , dsInactive olursa , CheckBrowseMode, kural dışı durumu or-taya çıkarır. Eğer uygulama var olan tablo yöntemlerinden birini kullanıyorsa CheckBrowseMode yalnızca ihtiyaç duyulduğunda çağrılır. Bu yüzden genel-likle bunu direk olarak çağırmak gerekmez. Özel tablo yöntemlerini gerekti-ren uygulamalar CheckBrowseMode' u başka bir kayda geçildiğinde deği-şikliklerin kaydedilip kaydedilmediğinden emin olmak için kullanırlar.

30) CLEARFIELDS

Aktif kayıt için bütün alanların içindekileri temizler .
procedure ClearFields;

Aktif kayıt için bütün alanların aktif içeriklerini silmek amacıyla ClearFieldsi çağır . Eğer tablo ne dsInsert ne de dsEdit durumunda ise ClearFields bir istisna durumu çıkarır. Diğer hallerde DataEvent olay durum ayarlayıcısını CheckBrowseMode' u çağırmak için kullanır. Sonra kayıttaki tüm alanları temizleyerek işe başlar. Eğer Setkey işlemi yapılmamışsa ClearFields tüm hesaplanmış alanları tekrar hesaplamak zorunda kalacaktır. Aynı zamanda DataEvent denetimciyi kaydın değiştiğini bildiren bir parametre ile çağırır. . Dönüşte , Data Event denetimcisi , tablo ile ilgili veri kaynağı bileşeni için ondatachange olay denetimcisini çağırır .

31) CLOSE

Tabloyu kapatır .
Procedure Close ;

Tablonun Active özelliğini false ayarlamak için Close' u çağırın . Active , False olduğunda tablo, kapatılır. Tablo , veriyi okuyamaz veya veri tabanına veriyi yazamaz . Uygulamada veriyi gösteren veri tabanı veya dene-timlerin durumunu etkileyen diğer özellikler değişmeden önce uygulama , Active' i false ayarlamalı . Örneğin , DataSource' un tablo özelliğini değiştirmeden önce Active false ayarlanmalı ki bu işlem yapılabilsin. Active' i false ayarlamak tabloyu dsinactive durumuna koyar ve BDE imlecini kapatır.

 
Alıntı ile Cevapla

Alt 24 Nisan 2007, 20:30   #10
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: SQL VE TQUERY Dev Arşiv...




32) CONTROLSDISABLED

Veri bilinçli (Data-aware) denetimlerinde gösterilen güncellenen verinin tablo için pasifleştirilip pasifleştirilmediğini belirler.
Function controlsdisabled: boolean;

Eğer ControlsDisabled , true ise , denetimler , o anda pasifleştirilirler.Controlsdisabled referans sayısı ki bu tablonun pasifleşme izlerini tutar, 0 dan büyük olduğu sürece true 'dur. Bu sayı DisableControls çağrıldıkça artar. Uygulamalar DisableControls 'u performansı artırmak ve çok sayıda kayıt içeren tablolar arasında dolaşırken sabit görüntü güncellemesini engellemek için çağırmalıdırlar. Kompleks uygulamalarda kontroller zaman zaman pasifleşebilir bu durumu kontrol edip etkinleştirmek için ControlsDisabled kullanılır

Örnek:
procedure ReEnableControls (TABLE: TDATASET);
begin
while TABLE.ControlsDisabled do
TABLE.EnableControls;
end;

33) CURSORPOSCHANGED

Tabloda imleç konumunu -1 e ayarlar
procedure CursorPosChanged;

Curposchanged , mantıksal imleç konumu ile ilgili fiziksel imleç konumu tarayan değişkeni geçersiz kılan iç yöntemdir . Curposchanged istenilen kayıt için Locate ve Lookup metotlarından önce çağrılır. Bu metotlar eğer başarılı olursa imleci aranana uyan ilk kayda konumlandırır.

34) DELETE

Aktif kaydı siler ve , sonraki kayıta imleci konumlar .
Procedure Delete ;

Delete' i aktif kaydı veri tabanından silmek için kullanın. Tablo pasifse Delete bir istisna ortaya çıkarır. Diğer hallerde tablonun boş olmadığını onaylar CheckbrowseMode çağırarak yapılan değişiklikleri kaydeder. BeforeDelete olay denetimcisini tetikler kaydı siler. Kayıt için ayrılan hafızayı serbest bırakır. Tabloyu dsBrowse moduna sokar Kursörü bir sonraki kayda konumlar . AfterDelete denetimcisini tetikler.


35) DISABLECONTROLS

Veri kaynağı bileşeni içinden tablo ile ilgili veri bilinçli (data-aware) denetiminde gösterilen veriyi geçersizleştirir .
Procedure Disablecontrols ;

Tabloda çok miktardaki kayıtların içinden önce data-aware denetiminde veri gösterilmesini önlemek için disablecontrols' u çağırın . Kayıtlar arsında hızla ilerlerken bunları ekranda göstermeye gerek yoktur. Bunu da bu methodla yaparız.

Eğer kontroller pasifleştirilmemişse disablecontrols tablonun durumunu kaydeder. Pasif değişken sayısını bir artırır. Aktif denetimcisi ve pasif değişken sayısı diğer metotlarca dahili olarak veriyi objelere yansıtıp yansıtılmayacağını belirlemek için kullanırlar. Pasif değişken sayısı 0 dan büyükse veri gösterilmez. Denetimler , zaten geçersizleştirildiğinde disablecontrols , emniyetle çağırılabilir . Kompleks uygulamalarda farklı işlemler olabilir.

Örnek:
with CustTable do
begin
DisableControls;
try
First;
while not EOF do
begin
{ Her kaydı burada işle }
.
.
.
Next;
end;
finally
EnableControls;
end;

36) EDIT

Tabloda verinin biçimlemesini mümkün kılar .
Procedure Edit ;

Edit' i aktif kaydı düzenlemeye olanak vermek için çağırın. Edit tablonun aktif durumunu belirler. Tablo boş ise Edit Insert 'i çağırır. Yoksa Edit;
CheckBrowseMode' u herhangi bir değişiklik olduğunda kaydetmek için çağırırlar. BeforeEdit denetimcisini tetikler . Kaydı getirir. Tabloyu dsEdit durumuna getirir. Uygulamaya veya kullanıcıya kayıttaki alanları düzenleme imkanı verir. Kayıt değiştirme denetimcisini tetikler. AfterEdit olay denetimcisini tetikler.
Örnek:
Procedure TForm1.Button1Click(Sender: TObject);
var
Stream1, Stream2 : TBlobStream;
begin
Stream1 := TBlobStream.Create(Table1Notes, bmRead);
try
Table2.Edit;
{ Aşağıda bloab akışı oluşturmanın diğer bir yolu }
Stream2 := Table2.CreateBlobStream(Table2.FieldByName('Remark s'),
bmReadWrite);
try
Stream2.CopyFrom(Stream1, Stream1.Size);
Table2.Post;
finally
Stream2.Free;
end;
finally
Stream1.Free;
end;
end;


37) ENABLECONTROLS

Veri kaynağı bileşeni içinden tablo ile ilgili data-aware denetiminde veri gös-terilmesini aktif kılar .
procedure EnableControls;

Eğer pasif değişken sayısı 0 ise EnableControls tablodaki aktif durumu günceller. Eğer gerekirse olay denetimcisini veri gösterimini yeniden aktif kılabilmek için çağır.

38) FIELDBYNAME

Belirlenmiş alan ismine dayanılan alanı bulur .
function FieldByName(const FieldName: string): TField;

Sadece alanın ismi , bilinildiğinde alan için alan bilgisine erişmek için FieldbyName' i çağırın. Fieldname , varolan alanın isimidir . Fieldbyname , belirlenmiş alan için Tfield bileşeni döndürür . Uygulama , özel özelliklere ve alanın yöntemlerine doğrudan erişebilir . Örneğin , aşağıdaki deyim , belirlenmiş alanın hesaplanmış alan olup olmadığını belirler.
if Customers.FieldByName('FullName').Calculated then
MessageDlg(Format('%s is a calculated field. ', ['FullName']), mtInformation, [mbOK], 0);

FieldbyName , veri tabanı uygulamalarını ama temelde olan tabloya erişmeyeni yaratan geliştiriciler için özellikle tasarım zamanında yararlıdır ve
bu yüzden , kalıcı alan bileşenlerini kullanamaz .

NOT: Özel alan için değere erişmek veya ayarlamakta , FieldByName yerine varsayılan tablo yöntemiyle FieldValues' ü çağırın.

procedure TForm1.Table1BeforeInsert(DataSet: TDataSet);
begin
try
{edit alanının integera çevrilebildiğinden emin olun }
StrToInt(Edit1.Text);
except
Edit1.Text := '0';
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Table1.Insert;
Table1.FieldByName('QUANTITY').AsInteger := StrToInt(Edit1.Text);
Table1.Post;
end;

39) FINDFIELD

Tabloda belirlenmiş alan nesnesini arar .
Function FindField(const fieldname: string): TField;


Belirlenmiş alan bileşeninin , tabloda olup olmadığını belirlemek için Findfield' ı çağırın . Fieldname , aranacak alanın isimidir. Eğer Findfield , eşlenen isimle aynı alanı bulursa , belirlenmiş alan için TField tipinde bileşeni döndürür . Aksi halde boş değer (Nil) döndürür . Findfield , parametre olarak geçerli alan isimi gerektiren FieldByName gibi , diğer tablo yöntemlerini çağırmadan önce kullanma amacına yönelik yararlı bir işlevdir .

Örnek
with Table1 do
begin
{ Bu 'CustNo' alanını değiştirmenin güvenli bir yoludur }
FindField('CustNo').AsString := '1234';
{ Bu 'CustNo' alanını değiştirmenin güvenli olmayan bir yoludur }
Fields[0].AsString := '1234';
end;

40) FINDFIRST

Süzgeçlenmiş tabloda imleci ilk kayda konumlamak için görsel bir işlem yerine getirir.
function FindFirst: Boolean;

Bu işlev , imleç başarılı biçimde yeniden yerleşemediğinde False döndürür . Genellikle uygulama , tablo düzeyinde FindFirst' ü çağırmamalı ama yerine , redeclared' ı ve TTable gibi torun nesnede FindFirst' ü çağırmalıdır . Findfirst , Findfirst'ü yapmayan türemiş tablo nesneleri için Fallback yöntemi sağlar .

41) FINDLAST

Süzgeçleniş tablodaimleci son kayda konumlamak için görsel bir işlem yeri-ne getirir.
function FindLast: Boolean;

Bu işlev , imleç başarılı biçimde yeniden yerleşemediğinde False döndürür . Genellikle uygulama , tablo düzeyinde FindLast'ı çağırmamalı ama yerine , redeclared' ı ve TTable gibi torun nesnede FindLast 'ı çağırmalıdır. FindLast, FindLast 'ı yapmayan türemiş tablo nesneleri için fallback yöntemi sağlar .

42) FINDNEXT

Süzgeçlenmiş tabloda imleci bir sonraki kayda konumlamak için görsel bir işlem yerine getirir.
function FindNext: Boolean;

Bu işlev , imleç başarılı biçimde yeniden yerleşemediğinde False döndürür . Genellikle uygulama , tablo düzeyinde findlast' ı çağırmamalı ama yerine , redeclared' i ve TTable gibi torun nesnede Findfirst' ü çağırmalıdır. Findfirst , Findfirst' ü yapmayan türemiş tablo nesneleri için fallback yöntemi sağlar .

43) FINDPRIOR

Süzgeçlenmiş tabloda imleci bir önceki kayda konumlamak için görsel bir işlem yerine getirir.
function findprior: boolean;

FindPrior , FindPrior' u yapmayan türemiş tablo nesneleri için Fallback yöntemi sağlar .

44) FIRST

Tabloda ilk kayda imleci konumlamak için genel yöntemi uygular .
procedure first ;

First' ü TDataset düzeyinde çağırma. TDataset torunlarında , onu aktif kayıt yapmak için ve tabloda ilk kayda imleci konumlamak için first' ü çağır . First , yapılan değişiklikleri aktif kayda kaydeder ve :

Kayıt tamponlarını temizler . Tablo dosyasının başlangıcına imleci ayarlar . Sanalı çağırır , ilk kayda gidip almak için , kursörü onun üstüne konumlandırır, ve onu aktif kayıt yapar . TDataset için bu yöntem , sadece tanımlanır uygulanmaz .
• Gösterilecek ek kayıtları getirir .Buda başka bir etkili metodu çağırır ki bu sadece tanımlanır ,yürütülmez.
• Bof özelliğini true ayarlar.
• Tablo değişim olayları için olay denetimcisini tetikler


 
Alıntı ile Cevapla

Cevapla

Etiketler
arsiv, dev, sql, tquery, ve


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
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