• If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.

Duyuru

Gizle
No announcement yet.

Windows Server 2003 kurulumu

Gizle
Bu konu sabit bir konudur.
X
X
 
  • Filtrele
  • Zaman
  • Göster
Hepsini Sil
new posts
  • #16

    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

    Yorum yap

    • #17

      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 *** ile sınırlanmıştır.
      • Dbase de sabitler desteklenmez

      Örneğin aşağıdaki ifade Paradox ta Primary *** '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 *** (soyad,ad)
      )
      Aşağıdaki örnek yukarıdakinin Dbase için yazılmış olup Primary *** 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 *** 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.

      Yorum yap

      • #18

        DDL Örnekleri

        a) Drop Table ( Tablo Silme)

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

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

        b) CREATE INDEX

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

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

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

        c) DROP INDEX

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

        DML ( Data Manipulation) Örnekleri

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

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

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

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

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

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

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

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

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

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

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

        Yorum yap

        • #19

          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

          Yorum yap

          • #20

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

            1) CONSTRAINED (KISITLAMA)

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

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

            TCHECKCONSTRAINT

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

            2) DATASOURCE

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

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

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

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

            3) -R- LOCAL

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

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

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

            4) PARAMCHECK

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

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

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

            5) -R- PARAMCOUNT

            Query için aktif parametre sayısını belirtir
            Property Paramcount :Word;

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

            6) PARAMS

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

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

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

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

            TQuery Params girisi

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

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

            Yorum yap

            • #21

              7) PREPARED

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

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

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

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

              8) REQUESTLIVE

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

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

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

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

              9) -R- ROWSAFFECTED

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

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

              10) SQL

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

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

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

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

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

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

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

              1) Query çalışıyorsa kapatmak için CLOSE yöntemini çağırın.
              2) SQL özelliğini temizlemek için CLEAR
              3) Yeni bir sql ifadesi eklemek için ADD veya SQL özelliğinde 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.

              Yorum yap

              • #22

                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.

                Yorum yap

                • #23

                  TDBDATASET 'DEN GELEN ÖZELLİKLER

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

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

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

                  16) DATABASENAME

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

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

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

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

                  DatabaseName özelliğini değiştirirken tüm bağlantılı tablolar kapalı olmalıdır.


                  Table1.Active := False;
                  try
                  { Ilk önce alias kullanmaya çalışıyoruz }
                  Table1.DatabaseName := 'Delphi_Demos';
                  Table1.Active := True;
                  except on EDatabaseError do
                  { Eğer hata oluşursa sürücü ve dizin belirtiyoruz }
                  Table1.DatabaseName := 'c:\delphi\demos\database';
                  Table1.Active := True;
                  end;


                  17) -R- DBHANDLE

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

                  Type
                  HDBISES:longint;
                  Property Dbhandle: HDBISES;

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

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

                  18 ) -R- DBLOCALE

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

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

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

                  19) -R- DBSESSION

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

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

                  TSession

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

                  20) -R- PROVIDER

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

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

                  21) SESSIONNAME

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

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

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

                  22) UPDATEMODE

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

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

                  Yorum yap

                  • #24

                    37) -R- RECORDCOUNT

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

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

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

                    Kayıtlar arasında dolaşmayı ve dolaştıkça progressbar'ı değiştirme işlemini gerçekleştiren bir örnek aşağıda verilmiştir.

                    procedure TForm1.Button1Click(Sender: TObject);
                    var
                    i: integer;
                    begin
                    with ProgressBar1 do
                    begin
                    Min := 0;
                    Max := Table1.RecordCount;
                    Table1.First;
                    for i := Min to Max do
                    begin
                    Position := i;
                    Table1.Next;
                    end;
                    end;
                    end;

                    38 ) RECORDSIZE

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

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

                    Aktif Query ve tablodaki kayıtsayısını, kayıt boyutunu ,anahtar alan boyutunu,aktif kayıt numarasını gösteren bir kod örneği

                    procedure TForm1.FormCreate(Sender: TObject);
                    begin
                    Query1.open;
                    Label2.caption:=inttostr(query1.recordcount);
                    Label4.caption:=inttostr(query1.recno);
                    Label6.caption:=ittostr(query1.recordsize);
                    Label8.caption:=inttostr(query1.keysize);
                    end;

                    39) UPDATEOBJECT

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

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

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

                    40) UPDATERECORDTYPES

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

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


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

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

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

                    41) -R- UPDATESPENDING

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

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

                    Yorum yap

                    • #25

                      TDATASET 'DEN GELEN ÖZELLİKLER

                      42) ACTIVE

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

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

                      Active' i true yapmak :

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

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

                      43) AUTOCALCFIELDS

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

                      Tablo işlemi boyunca hesaplanmış alanların güncellenmesi için OnCalcFields olayının çalıştırılıp çalıştırılmayacağını belirlemek amacıyla kullanın. Hesaplanmış alan değeri tablodaki bir veya birden fazla alandan etkilenerek bazen de bazı ek işlemlere tabi kalarak oluşur. OnCalcFields true olduğunda ki varsayılan budur, şu durumlarda çalıştırılır

                      • Tablo açık olduğunda
                      • Tablo dsEdit durumunda olduğunda
                      • Veriden -etkilenen ızgara (grid) kontrollerinde ki ( Aktiflik bir görsel kontrolden diğerine veya bir sütundan diğerine hareket eder) ve değişikliklerin kayda yapıldığı durumlarda
                      • Veri tabanından bir kayıt çağrıldığında

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

                      44) -R- BOF

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

                      Bof true ise kursör kesinlikle tablonun ilk satırındadır. BOF aşağıdaki durumlarda true olur :

                      • Tablo açılır,
                      • Tablo için First metodu çağrılırsa ,
                      • Tablo için Prior (önceki) metodu çağrılır ve bu işlem başarısız olursa (çünkü kursör zaten ilk kayıttadır)
                      • Boş bir kayıtta veya dizide SetRange metodu çağrılırsa.

                      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.

                      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:

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

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

                      50) FIELDCOUNT

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

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

                      51) FIELDDEFS

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

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

                      Tablodaki alanlara ve bunların değerlerine erişmek için Field ve FieldValues özelliklerini ve FieldsByName metodunu kullanın.

                      Aşağıdaki örnek yeni bir tablonun nasıl oluşturulduğunu gösterir

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

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

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

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

                      52) FIELDS

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

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

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

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

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

                      53) FIELDVALUES

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

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

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

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

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

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

                      54) -R- FOUND

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

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

                      55) -R- MODIFIED

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

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

                      56) NAME

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

                      Name özelliğini dataset'in adını aktif uygulamadaki amacını yansıtmak için değiştirmede kullanın. Varsayılan olarak Delphi, öğenin tipine bağlı olarak öğelere sırasal numaralar verir table1,table2...) 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.

                      Yorum yap

                      • #26

                        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 ve Anlamı

                        dsInactive : Tablo kapalı,yani kullanılamaz
                        dsBrowse : Data görülebilir ama değiştirilemez. Bu açık tablonun varsayılan durumudur :
                        dsEdit : Aktif kayıt değiştirilebilir.
                        dsInsert : Yeni bir kayıt eklenebilir.
                        dsCalcFields : OnCalcFields olayı işlemektedir .Hesaplanmamış alanlar düzeltilemez ve yeni kayıtlar eklenemez.
                        dsFilter : OnfilterRecord olayı aktifse Hesaplanmamış a lanlar düzeltilemez ve yeni kayıtlar eklenemez.
                        dsNewValue : Tfield.NewValue özelliğine erişildiğini belirtmek için geçici durum dahili olarak kullanılır.
                        dsOldValue : Tfield.Old.Value özelliğine erişildiğini belirtmek için Geçici durum dahili olarak kullanılır.
                        dsCurValue : Tfield.Cur.Value özelliğine erişildiğini belirtmek için geçici durum dahili olarak kullanılır.
                        dsSetkey : Yalnızca Ttable .Kayıt aramak mümkün veya SetRange işlemi yapılabilir. Sınırlı veri kümesi görülebilir ama kayıt eklenemez veya düzeltilemez.

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

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


                        TCOMPONENT' DEN KALITIMSAL GELEN ÖZELLİKLER

                        58) -R- COMOBJECT

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

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

                        59) -R- COMPONENTCOUNT

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

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

                        60) COMPONENTINDEX

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

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

                        61) -R- COMPONENTSTATE

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

                        Component 'ler bu özelliği belli işlemlerin yapılmasına izin verip vermemek için belirleyici olarak kullanırlar. Örneğin eğer bir öğe çalışma esnasında işlenecek ama dizayn esnasında bazı işlemlerin gerçekleşmemesini istiyorsa csDesigning bayrağını kontrol edebilir. Bu özellik değiştirilemez ve her bir bayrağı çeşitli metotlarca otomatik olarak ayarlanır. TcomponentState tipi ComponentState özelliği için var olan durumları belirtir.

                        BAYRAK : Nesne durumu
                        csAncestor : csDesigning aktifse ve nesne bir ata formunda tanıtıldıysa kullanın
                        csDesigning : Nesnenin Form Designerca işlenmekte olduğu durumdur CsDestroying nesnenin değiştirilmekte olduğu
                        csLoading : Filer nesnesinden yükleniyor.
                        csReading : Özelliklerini akışından okuyorsa
                        csUpdating : Değişiklikleri ata forma yansıtmak için nesne güncelleniyorsa. Bu csAncestor aktif edildiyse aktif edilir.
                        csWriting : Özellik değerlerini akışa yazıyorsa
                        csFixups : Daha yüklenmemiş başka bir formdaki nesneye bağlantı yapıldıysa .Bu özellik bütün kararlaştırılmış fixuplar yeniden çözüldüğünde sıfırlanır.

                        62) -R- COMPONENTSTYLE

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

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

                        63) DESIGNINFO

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

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

                        64) -R- OWNER

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

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

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

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

                        65) TAG

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

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

                        66) VCLCOMOBJECT

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

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

                        Yorum yap

                        • #27

                          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

                          Yorum yap

                          • #28

                            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.

                            Yorum yap

                            • #29

                              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(Req: 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.

                              Yorum yap

                              • #30

                                19) FETCHALL

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

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

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

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

                                20) GETCURRENTRECORD

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

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

                                21) GETINDEXINFO

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

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

                                22) LOCATE

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

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

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

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

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

                                23) LOOKUP

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

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

                                24) REVERTRECORD

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

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

                                NOT: Cache teki bütün değişiklikleri iptal etmek için CancelUpdates' i çağırın.

                                Örnek : Cachelenmiş güncellemeler enable olduğunda silinen kayıtları kurtarmayı gösteren bir örnek program.
                                procedure UndeleteAll(DataSet: TDataSet);
                                begin
                                with DataSet do
                                begin
                                UpdateRecordTypes := [rtDeleted]; {sadece silinen kayıtlar görünür olacak }
                                try
                                First;
                                while not EOF do
                                begin
                                RevertRecord; {aktif kaydı kurtar}
                                Next;
                                end;
                                finally
                                UpdateRecordTypes := [rtModified, rtInserted, rtUnmodified];
                                end;
                                end;
                                end;

                                25) UPDATESTATUS

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

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

                                TDATASET' den devralınan Metotlar

                                26) ACTIVEBUFFER

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

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

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

                                27) APPEND

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

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

                                Append çağrısı yapıldıktan sonra uygulama kayda veri girebilir ve bunları post çağrısıyla kaydedebilir. Yenice eklenen kayıt , aşağıdaki üç yolun biriyle veri tabanına kaydedilir .

                                a) İndekslenmiş paradox ve dbase tabloları için kayıt , dizinine dayanılan
                                konumda tablo içine eklenir .
                                b) Indekslenmemiş paradoxu ve dbase tabloları İçin , kayıt , tablonun sonu-na eklenilir .
                                c) Sql veri tabanları için , eklemenin fiziksel yerleşimi özel yapılır.
                                d) İndekslenmiş tablolar için , dizin , yeni kayıt bilgisi ile güncelleştirilir .

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

                                Yorum yap

                                Hazırlanıyor...
                                X