RowSet Nesnesi

Tanım


Bir RowSet, veri sütunlarını (alanlar/columns) içeren bir satırlar (row) dizisidir. Tüm veri tabanı veri sağlayıcılarının sonuçları tablo biçiminde göstermelerini sağlayan merkezi bir nesnerdir. Dinamo ERP’nin RowSet’leri bellekte geçici olarak oluşturulan tablolardır. İstemci tarafında oluşturulan “Ole DB Disconnected RecordSet” yapısına benzemektedir. Veri tabanı tablolarından temel farkı; herhangi bir veritabanı ile zorunlu bir ilişkilerinin olmamasıdır. Bellekte geçici oluşturulan tablolardır (table). Oluşturulduktan sonra bir tablo gibi davranırlar, satırlar(Row) eklenebilir, silinebilir, alan değerleri okunup değiştirilebilir. Bir RowSet de yapılan işlemler tamamen bellekte ve istemci tarafında yapılmaktadır, SQL sunucudaki gerçek tablolara kaydı sağlayan prosedürler çalıştırılmadıkça (mesela bir Dinamo ERP modülünün kaydedilmesi gibi) veri tabanına bir etkileri olmaz.

Dinamo ERP’nin RowSet leri her zaman bir modüle ait (bir modülün içinde) yaratılırlar ve o modülde tekrar edemeyecek bir isim ile anılırlar. Silinmedikleri sürecek ( veya modül kapatılmadığı sürece) isimleri ile erişilebilir şekilde bellekte kalırlar.


Dinamo ERP’de bir modül tarafından önyüzde (ekranda) gösterilecek her türlü değişken bilgi bir RowSet ve o RowSet’in alanlarında tutulur.


RowSet’ler yaratılma kaynağına göre şu şekilde gruplanabilir :

3.Herşey ile tamamen kullanıcı tarafından yaratılan rowsetler.

4.Mevcut veri tabanı tablolarından, yaratılan rowsetler.

5.Uygulamalar tarafından otomatik olarak yaratılan rowsetler.

6.Mevcut rowsetlerden yaratılan rowsetler.


1.Herşey ile tamamen kullanıcı tarafından yaratılan rowsetler.


Bu rowsetlerin tüm bilgileri kullanıcı tarafından verilir. Rowsetin adı, rowsetin tipi; içinde ki alanlar (field), bu alanların özellikleri (veritipi, uzunluk, adı vs.), sıralama şekli… gibi tüm bilgiler kullanıcı tarafından verilmektedir. Bu tip kullanımlarda kullanıcı öncelikle rowsetin adını ve tipini belirterek, yeni bir rowset oluşturmalıdır. Daha sonra da içindeki alanları (field’ları) belilrlemelidir. Bu aşamadan sonra rowset kullanılabilir. Document nesnesinin sahip olduğu, CreateTableObject, CreateRowsetObject, CreateTransactionalTableObject veya CreateTransactionalRowsetObject fonksiyonları yardımı ile yaratılırlar.


Genelde yepyeni bir uygulama veya ekran tanımı yaratılırken kullanılırlar. Yazılımda değişken bir bilgiyi ekranda göstermenin tek yolu bir rowset alanına atanmasıdır. Doğal olarak daha önce uygulamada bulunmayan alanları kullanmak ve bunları ekranda göstermek için yeni bir rowset yaratmak gereklidir. Fakat bu bilgilerin bellekte geçici durduğu unutulmamalıdır. Eğer bilgiler saklanacaksa, veritabanında kalıcı bir tablo oluşturulmalıdır.


2.Mevcut tablolardan, fonksiyonlarla yaratılan rowsetler.


Bu tip rowsetler, tamamen mevcut veritabanı tablolarından yaratılırlar. Doğal olarak içindeki alanlara ve özellikleri veritabanındaki tanımlardan gelir. Document nesnesinin sahip olduğu, Select1, Select1G, Select1G _Cached, Select1_ForUpdate, SelectEQ, RunSQLQuery veya RunSQLQuery_Par fonksiyonları yardımı ile yaratılırlar.


Bu tip rowsetlere, genelde veritabanı sorgulamalarında ihtiyaç duyulur. Bu şekilde oluşturulan Rowset lerin büyük kısmının veri tabanın değiştirme özelliğ bulunmamaktadır, sadece okuma amaçlıdır. Sadece Select1_ForUpdate gibi bazı özel fonksiyonlarla yaratılan rowsetlerin veritabanını değiştirme özelliği bulunmaktadır.


3.Uygulamalar tarafından otomatik olarak yaratılan rowsetler.


Uygulamalar kendisi ile ilişkili olan ve veritabanında saklanan tablolar için, bellekte sadece ilgili belgeye ait verileri içeren ve veri tabanı tabloları ile genelde aynı adlı rowsetler oluşturur. Tamamen uygulama tarafından dinamik olarak yaratılır ve yönetilirler. Bu nedenden dolayı; veri tabanı işlemleri, diğer uygulamalar, hesaplamalar gibi birbirine bağlı tüm işlemler uygulama modülü tarafından yürütülür. Genel olarak, document nesnesinin sahip olduğu, GetTableObject veya GetRowsetObject fonksiyonları yardımı ile çağrılıp, kullanılırlar. Uygulama tarafından yaratılmış olduklarından, rowsetlerden rowset yaratan fonksiyonlar tarafından da kullanıldıkları unutulmamalıdır.


Genelde uygulamalar üzerinde belge ile ilgili işlemler yaparken kullanılırlar. Örneğin belgeyi kaydetmek, içeriğini değiştirmek, yazıcı çıktısı alırken kullanmak vs. gibi işlemlerde bu rip rowsetler kullanılır. Uygulamalar tarafından yaratılan RowSet’ler dört farklı türde olabilir (Bir sonraki kısımda açıklanmaktadır)


4.Mevcut rowsetlerden yaratılan rowsetler.


Sadece bellekte geçici olarak tutulan rowsetlerden, istenilen kriterlere uygun olarak yeniden yaratılan rowsetlerdir. Document nesnesinin sahip olduğu, Select2, Select3, Select2G, Select3G, Select2G_Cached, Select3G_Cached, Select2_ForUpdate veya Select3_ForUpdate fonksiyonları yardımı ile yaratılırlar. Ayrıca RowSet nesnesini sahip olduğu GetParentTableObject, CloneRowSetObject veya CloneTableObject fonksiyonları aracılığı ile de yaratılırlar.


Genelde bir RowSet içinden sorgulama ile bazı kriterlere uyan satırları elde etmek ve/veya gruplamak veya sıralamak için kullanılırlar. Bellekteki mevcut rowsetlerdeki veriyi okuduklarından, veritabanı sorgulamalarından daha hızlı çalışırlar.





Uygulama modülleri tarafından yaratılan RowSet ler şu şekilde gruplanabilir :

1.Modülün ana Rowset’i

2.Modülün ana Rowset’ine bağlı ve ana RowSet ile master-detail (ana -detay) ilişkisi içinde alt rowsetler

3.Alt Rowset satırlarına bağlı ve alt RowSet ler ile master-detail (ana -detay) ilişkisi içinde alt rowsetler

4.Bilgi girişi için yaratılan yaratılan yardımcı rowsetler.


Yaratılma Şekli

Yukarıda yaratılma şekillerine göre kullanılan fonksiyonlar anlatılmıştır. Bu fonksiyonlar hakkında detaylı bilgiye, document nesnesindeki nesne yaratma fonksiyonları bölümünde ve Rowset nesnesindeki ilgili fonksiyonlar aracılığı ile ulaşabilirsiniz.