IBDataSet açıp kapamayla oluşan garip hata

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Akin_Delphi
Üye
Mesajlar: 163
Kayıt: 06 Nis 2006 12:22

IBDataSet açıp kapamayla oluşan garip hata

Mesaj gönderen Akin_Delphi »

Herkese iyi çalışmalar,

Forumda aradım ancak bulamadım. Benzer bir konu bulunuyor (ModifySQL ifadesinde primary key'in tanımlanmaması ile ilgili), ancak benim durumumla ilgili değil.

Öncelikle çok tuhaf bir durum yaşıyorum. Yazmakta olduğum bir uygulamada, kullanıcının örneğin insert ve update gibi bir takım işlemleri yalnızca sihirbazlar aracılığıyla yapmasını sağlamak ve bazı kritik bileşenleri ise normal kullanıcıya salt okunur, aynı form üzerinde belirli bir şifreyi girerek yönetici haline gelen kullanıcıya ise insert ve update'i doğrudan yapmasını sağlamak istiyorum.

Ekleme (insert) durumunda sihirbazı açarken ilgili IBDataSet'i kapatıyorum, InsertSQL'ini güncelliyorum, tekrar açıyorum. Sihirbazda kullanıcı işlemi yaptıktan sonra kapatırken otomatik olarak kaydediyor ve bu yeni kayıt doğrudan veritabanına yansıyor (post + commitretaining ile).

Ancak tuhaf olan durum kullanıcının bir sihirbazı açarak salt okunur olan bir IBDataSet üzerinde değişiklik (yani update) yapmaya kalktığında oluyor.

Kullanıcı bu sihirbazı açtığında, sihirbaz açılırken ilgili IBDataSet'i kapatıyorum, ModifySQL'ini güncelliyorum ve tekrar açıyorum. Kullanıcı gerekli değişiklikleri yaptıktan sonra, sihirbazı kapatırken, kodla post ve commitretaining yapmama rağmen, sihirbaz kapanırken IBDataSet'i kapatıp, ModifySQL'ini sildiğimden dolayı, post ve commitretaining komutları sanki hiç kullanılmamış gibi hiç bir şekilde veriyi güncellemiyor.

Artık beynim durdu ve çözümlerim tükendi. Bir fikri olan var mıdır acaba?

Saygılarımla
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Bu şekilde uğraşmaktansa veritabanında sadece okumak ve raporlama için (select) yetkili oluşturacağınız kullanıcılarla işini halledebilirsin.
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
shadowmann
Üye
Mesajlar: 508
Kayıt: 30 Oca 2004 10:49

Mesaj gönderen shadowmann »

Basit bir çözüm ama kaydet, gönder vs butonları disabled etseniz.
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Re: IBDataSet açıp kapamayla oluşan garip hata

Mesaj gönderen fduman »

Akin_Delphi yazdı:.. IBDataSet'i kapatıp, ModifySQL'ini sildiğimden dolayı, post ve commitretaining komutları sanki hiç kullanılmamış gibi hiç bir şekilde veriyi güncellemiyor.
Post edebilmen için Modify SQL'in olması gerekli. Post komutu buradaki SQL ifadesine verileri geçirerek SQL sorgusunu gönderiyor. Modify SQL olmadan güncelleme yapamazsın.
Akin_Delphi
Üye
Mesajlar: 163
Kayıt: 06 Nis 2006 12:22

Mesaj gönderen Akin_Delphi »

Sorunu buldum.

Aslen bu SQL dedikleri dili iyi bilmememden dolayı tıpkı arama yaptığımda bulduğum başlıktaki gibi, where ifadesini yanlış kullanıyormuşum. :( :( :(.

3-5 saatlik uykudan sonra başlıktakileri tekrar baştan sona okudum ve silme işlemi de yapamıyorsunuzdur vs. yazılarını görünce (ki ben de silme yapamıyordum), sorunun o olduğu kanaatine vardım ve IBDataSet'in otomatik olarak oluşturduğu SQL ifadesini kullanınca sorun çözüldü.

Herkesin vaktini aldığım için özür diliyorum.

Saygılarımla,
Cevapla