Konu
:
RemoteData (RDO Data Control) denetimi
Tekil Mesaj gösterimi
08-01-2007, 06:20 PM
#
1
(
permalink
)
CENGiZ1
CSI USLANMAM
RemoteData (RDO Data Control) denetimi
RDO
RDO (remotedata object) hızlı bir client/server uygulama geliştirme aracıdır. Temel veritabanı
İşlemlerini kolayca yapmanızı sağlar.ayrıca gelişmiş özellikleriyle bir ODBC arabirimidir.DBGrid’e
Bağlı olarak RDC ile kaydırma çubuğu olan güncellenebilen bir grid (ızgara) yaratmak mümkündür
RDO
ODBC üzerinde ince bir katmandır.sadece 32-bit visual basic ile çalışır.ilişkisel veritabanlarına
erişimde DAO’dan daha hızlıdır.ODBC sürücüsünün tanımlanmasını gerektirir.RDO ayrıca
Remotedata
Control
adında görsel arabirimine de sahiptir
Rdo
ve jet programlaması birbirine çok benzer.veri tabanı bağlantısı rdoenvironments nesnesinin
openconnection metodu ile sağlanır.bağlantı kurulduktan sonra OpenResultset metodu ile kayıtlarabir
SQL sorgu ile erişilir.RDO’nun diğer bir yararlı özelliği de SQL deyimlerinden yararlanmaktır.RDO kullanmak
için şu gereksinimlerin yerine getirilmesi gerekir:
·
Visual
basic 32-bit enterprise edition
·
ODBC sürücülerinin yüklü olması gerekir
·
SQL deyimi
·
Veri kaynağının kayıt edilmesi;Data Source Name (DSN) oluşturulması
Mevcut DAO uygulamasını RDO’ya çevirmek çok kolaydır.RDO’da kayıtlar (records) yerine satırlar
alanlar yerine
de kolonlar kullanılır.RDO metotları zaman uyumlu ya da zaman uyumsuz işletilebilir.
RDO 2.0’ IN YENİLİKLERİ
RDO 2.0 eski sürümüne göre daha genişletilmiş ve güncel gereksinimlere göre performansı artırılmıştır.
·
Yeni client batch cursor kütüphanesi
·
Batch
optimistik query’ler
·
Olay-temelli programlama
·
Veriyi güncelleştirebilen RDO kontrolü
·
Tek başına kullanılabilen RDO nesneleri
·
Metotlar gibi kullanılabilen query’ler
RDO’ NUN ÜSTÜNLÜKLERİ
RDO
DAO kadar güçlü olmasıyla birlikte daha kolay bir erişim yöntemidir.RDO
DAO ve Jet gibi veri-bağlı
(data-bound) yöntemleridir.ODBC ve VB-SQL’de bağlı denetimler yoktur.buı nedenle verilere erişim için ve
kullanıcıların erişimini sağlamak için kod yazmak gerekir.
Jet /DAO bir ISAM veritabanı olarak tasarlanmıştırlar.sadece veri içerirler
herhangi bir veri tabanı motoruna
Sahip değildirler.ancak SQL server gibi ODBC veri kaynakları kendi veritabanı motorlarına sahiptirler.RDO
ODBC veri
Kaynakları için tasarlanmıştır.bu nedenle bir veritabanı motoru (engine) içermez.bu nedenle RDO daha az sistem
Kaynağına gereksinim duyar ve Jet’ten daha fazla etki
ndir.RDO’nun sağladığı Remote Data Control ile hiç kod yazmadan
ODBC kaynaklarına erişim sağlanır.
Bir bağlantıyı açmak:
Dim
renv as rdoenvironment
Dim
rcon as rdoconnection
Set renv=rdoengine.rdoenviromentd(0)
Set rcon=renv.openconnection(“tablo”)
…
rcon
.close
Veriyi elde etmek:
Dim
rQuery as rdoresultset
Dim
sSQL as string
sSQL
= “select * from tablo alan =”xxx”
set rQuery =rcon.OpenResultset(sSQL)
do while not rQuery.eof
ıstdocuments
.additem rQuery !tablo
rQuery
.movenext
loop
rQuery
.close
VERİTABANINI DEĞİŞTİRME:
RDO ile veritabanı üzerinde değişiklik yapmak için iki yöntem vardır.toplu değişiklik ya da belli bir kayıdın değişti-
Rilmesi
.toplu değişiklikte action queries(işlem sorguları) ya da stored procedure’lar kullanılır.belli bir kaydın değiştirilmesinde
İse edit
addnew
update ve delete metotlerı kullanılır.
Set renv=rdoengine.rdoenviroments(0)
Set rcon=renv.openconnection(“musteri”)
Set rtablo=rcon.OpenResultset (“tablo1”)
Rtablo
.addnew ‘ yeni kayıt ekleme
REMOTE DATA CONTROL’ UN KULLANIMI
ODBC üzerinden verilere daha hızlı erişim için RDC(remote data control) kullanılır.remote data control
data control
Nesnesine benzer biçimde kullanılır.RDO görsel programlama için rdc kontrolüne sahiptir.RDC kontrolü belli özellikler
İle RDO üzerinde çalışılarak verilere erişimi sağlar.bu özellikler şunlardır:
·
Connect
özelliği
·
Connection
özelliği
·
Resultset
özelliği
RDC’ nin birçok özelliği DAO’ nun data kontrolü ile aynıdır:
RDC özellikleri data control özellikleri işlevi
Bofaction
bofaction moveprevious metodu kullanımında dosya başına ulaşıldığını belirtir
Datasourcename
databasename verilere erişilecek olan veri tabanını belirtir
Eofaction
eofaction movenext metodunun kullanımında dosya sonu ulaşıldığını belirtir
Resultsettype
recordsettype elde edilen verinin tipini belirtir
SQL recordsource elde edilecek belli veriyi belirtir
RDC’ nin kullanımı için önce RDC’ nin projeye eklenmesi gerekir. Bu işlem components iletişim kutusu aracılığıyla yapılır
1.
form üzerinde denetimin yer alacağı yeri çiz.
2.
name ve caption özelliklerini düzenlenir
3.
datasourcename
özelliğini düzenleyin.ODBC veri kaynaklarından istediğinizi seçin
4.
SQL özelliğini kullanarak ; SQL deyimi ile istenilen kayıt setlerine erişmeyi sağlayın
RDO ve RDC ilişkisel veritabanların erişim için kullanılan bir alternatif veri erişim yöntemidir.RDO ve RDC ile bir veri erişimini
Yapılmasında üç önemli kavram vardır:
·
Cursor
type (işlem tipi)
·
Dataset
type (veri seti tipi)
·
Lock
type (kilitleme tipi)
Cursor
tipleri veri üzerinde hareket etmeyi (ileri-geri) ve işlem yapmayı (ekleme-değiştirme) sağlar.cursor tipleri client ve server tarafında olmak üzere veri yöntemini ikiye ayırır. Ayrıca birçok erişim tipinde cursor tipi belirtmeden de işlem yapılabilir.
Dataset
tipi ise uzak verilere erişimde önemli bir bilgidir.dinamik veri setleri kayıtların eklenmesine ve silinmesine izin verirler
Kilitlenme
tipleri ise veri setlerinin güncellenmesinde kullanılır. Microsoft jet veri iletişiminde iki seçenek vardır:
·
Pessimistic
(kötümser)
·
Optimistic
(iyimser)
Kötümser kilitlenme tipinde (çok kullanıcılı ortamda) bir kullanıcının değiştirdiği kayda diğer bir kullanıcının erişimini engellenir.
Cursor
tipleri:
rdopenforwardonly(varsayım)
Rdopenstatic
Rdopenaaaset
Rdopendynamic
Kilitlenme tipleri:
rdconcurlock
-(pesimistik concurrency)
Rdconcurreadonly-read only(varsayım)
Rdconcurrowver-optimistic concurrency
Rdconcurvalues-optimistic concurrency
DAO VE RDO KARŞILAŞTIRMASI
RDO ve DAO birbirine çok benzerler. Bağlantının kurulmasının ardından iki yöntemde de benzer bir kodlama yapısı kullanılır. Benzer nesneler:
RDO nesneleri DAO nesneleri
Rdoengine dbengine
Rdoenvironment
workspace
Rdoconnection
database
Rdotable
tabledef
Rdoresultset
recordset
-yok tablo tipi
aaaset tipi dynaser tipi
static tipi snapshot tipi
rdocolumn
field
rdoquery
querydef
rdoparameter
parameter
RDO
verilerin tablo olarak elde edilmesini desteklemez. Çünkü RDO verilere ulaşmak için SQL deyimlerini kullanır. Bununla birlikte RDO ve DAO metotları arasında benzerlikler vardır:
RDO ve DAO metotlarının karşılaştırılması
RDO metot RDO nesne DAO metot DAO nesne
Rdocreateenviroment
rdoengine createworkspace dbengine
Begintrans
rdoconnection begintrans workspace
Committrans
rdoconnection committrans workspace
Openconnection
rdoenvironment opendatabase workspace
Rollbacktrans
rdoconnection rollback workspace
createQuery
rdoconnection createQuerydef database
execute
rdoconnection execute database
openresultset
rdoconnection openrecordset database
ayrıca rdoresultset ve recordset nesneleri ortak metotlara da sahiptir.
RDO ve DAO ortak metot işlevi
Addnew
yeni bir kayıt ekler
Delete
mevcut kaydı siler
Edit
mevcut kayıdı değiştirmeyi sağlar
Movefirst
birinci kayıda gider
Movelast
son kayıda gider
Movenext
bir sonraki kayda gider
Moveprevious
bir önceki kayda gider
Update
yapılan değişiklikleri onaylar
Örnek:
RDO kullanarak verilere odbc üzerinden erişim
Dim
db as rdoconnection
Dim
rs as rdoresultset
Dim
sSQL as string
‘ daha önce yapılan DSN tanımına bağlanma
set db =edoengine . rdoenviroments(0).openconnection (“mySDN”)
sSQL
=”select*from musteri”
set rs =db.openresultset(sSQL
rdopenaaaset)
rs
.movefirst
while
not rs.eof
print
rs.rdocoloums(0)
rs
.movenext
wend
rs
.close
db
.close
RDO’ NUN ZAYIF YÖNLERİ
Birçok üstünlüğe sahip olmasına rağmen RDO’ nun zayıf yönleri de vardır. Bunları şu şekilde sıralayabiliriz:
·
Sadece 32-bit uygulamalar içn geliştirilmiştir
·
ODBC sürücüsünün tanımlanması gerekir.
·
ODBC API kadar hızlı değildir.
·
Access ve ISAM veritabanları üzerinde çalışan Jet kadar hızlı değildir
CENGiZ1
Açık Profil bilgileri
CENGiZ1 - Özel Mesaj gönder
CENGiZ1 - Daha fazla Mesajını bul