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