pro_imaj Posted August 28, 2018 Share Posted August 28, 2018 Merhaba; Grid edit modda iken veril girildikten sonra Grid'in bağlı olduğu Query de While döngüsü başlatıyorum ve aşağıdaki hatayı alıyorum. Explorer ve Crome da hiçbir sorun yok. Sorun sadece Microsoft Edge de en son sürümü ve önceki sürümlerde hata hep aynı hata. Yardımlarınızı rica ederim. Grid is in dirty state. No more updates can be applied Quote Link to comment Share on other sites More sharing options...
pro_imaj Posted August 28, 2018 Author Share Posted August 28, 2018 Grid üzerindeki veri girişi yapılan alan HiddenPanel üzerindeki SpinEdit nesnesine bağlı. Quote Link to comment Share on other sites More sharing options...
Sherzod Posted August 28, 2018 Share Posted August 28, 2018 Merhaba, I think it's better to do a small test case for this Quote Link to comment Share on other sites More sharing options...
Administrators Farshad Mohajeri Posted August 28, 2018 Administrators Share Posted August 28, 2018 Grid edit modda iken veril girildikten sonra Grid'in bağlı olduğu Query de While döngüsü başlatıyorum ve aşağıdaki hatayı alıyorum. While döngüsü için yeni bir Query objesi yaratın ve onu kullanın. Grid'in bağlı olduğu query üzerinde döngü yapmayın. Quote Link to comment Share on other sites More sharing options...
Freeman35 Posted August 28, 2018 Share Posted August 28, 2018 While döngüsü için yeni bir Query objesi yaratın ve onu kullanın. Grid'in bağlı olduğu query üzerinde döngü yapmayın. Yeni bir bileşen yerine, Grid in datasource unu nill atayıp, döngüyü kullanıp, işlemler bittikten sonra tekrar grid in datasource unu bağlasak sorunun giderilir mi? Quote Link to comment Share on other sites More sharing options...
Administrators Farshad Mohajeri Posted August 28, 2018 Administrators Share Posted August 28, 2018 Yeni bir bileşen yerine, Grid in datasource unu nill atayıp, döngüyü kullanıp, işlemler bittikten sonra tekrar grid in datasource unu bağlasak sorunun giderilir mi? Hayır, bunu yaparsak Grid bulunduğu pozisyonu unutabilir, farklı sorunlar yaşayabiliriz. Quote Link to comment Share on other sites More sharing options...
Freeman35 Posted August 28, 2018 Share Posted August 28, 2018 Hayır, bunu yaparsak Grid bulunduğu pozisyonu unutabilir, farklı sorunlar yaşayabiliriz. Konuyu öğrenme amaçlı devam ettiriyorum, Yukarıda bahsettiğim seneryomu devam ettirirsem yani grid i datasource dan ayırdım, query ile işlemleri yaptım, query i kapatıp tekrar açarsam, grid i tekrar datasource a bağlarsam, grid refresh lenmez mi? yada grid.refresh gibi bir procedure kullansam ? gerekli konumlandırma ihtiyacı olursa sataset i locate yada bookmark ile, grid i de forumda vardı ilgili row a konumlandırsam? İllaki böyle yapmak değil amacım, Bende alışkanlık 64k ya peek poke lar program yazmaya başladım web de ise lazım oldukça yaz nasılsa düz string ben hala alışamadım da Form eklenen her bir değişken class, server da memory, işlem yükü, üstüne bunu session sayısınlada artacak olunca planlama ihtiyacı hissediyorum. Malum, server memory ve disk size ı artıkça para demek, para ödemek değilde, ödediğim paraların kurşun olarak geri dönüyor olması canımı çok sıkıyor ayrıca. Quote Link to comment Share on other sites More sharing options...
pro_imaj Posted August 28, 2018 Author Share Posted August 28, 2018 Yeni bir bileşen yerine, Grid in datasource unu nill atayıp, döngüyü kullanıp, işlemler bittikten sonra tekrar grid in datasource unu bağlasak sorunun giderilir mi? Bunu denedim aynı hata mesajı ile karşılaşıyorum. Quote Link to comment Share on other sites More sharing options...
pro_imaj Posted August 28, 2018 Author Share Posted August 28, 2018 While döngüsü için yeni bir Query objesi yaratın ve onu kullanın. Grid'in bağlı olduğu query üzerinde döngü yapmayın. Listelenen satırlarda kullanıcı Adet girişi yapıyor, sonrasında hangi satırlarda veri girişi olduğunu bulmam için döngü ile gitmem gerekiyor, sizin dediğiniz şekilde yaparsam kullanıcı son değişikliğe enter tuşuna basmazsa o satır yeni query'e boş olarak gelir. *İlgili işlemde grid üzerinde kullanıcı enter tuşuna basarsa sonrasında While döngüsünü çalıştıran butona basarsa zaten bu hata oluşmuyor. Quote Link to comment Share on other sites More sharing options...
pro_imaj Posted August 28, 2018 Author Share Posted August 28, 2018 While döngüsü için yeni bir Query objesi yaratın ve onu kullanın. Grid'in bağlı olduğu query üzerinde döngü yapmayın. Eğer bu bir hataysa, neden diğer browser larda vermiyor. Sorunu çözmeye çalışıyorum fakat kullanıcıya başka browser kullan demek istemiyorum. Quote Link to comment Share on other sites More sharing options...
Administrators Farshad Mohajeri Posted August 28, 2018 Administrators Share Posted August 28, 2018 DataSet.DisableControls; try // loop here finally DataSet.EnableControls; end; Bunu deneyin. Quote Link to comment Share on other sites More sharing options...
Administrators Farshad Mohajeri Posted August 28, 2018 Administrators Share Posted August 28, 2018 Eğer bu bir hataysa, neden diğer browser larda vermiyor. Sorunu çözmeye çalışıyorum fakat kullanıcıya başka browser kullan demek istemiyorum. Grid'in bağlı olduğu dataset'i loop'a sokmak demek grid'in bulunduğu cursor'u kaybetmesi demek. Neden sadece EDGE'de hata verdiğini bilmiyorum, ama kullandığınız yöntem başta sakıncalı. Kullanıcı son satırı POST ettiği zaman bunu yapın örneğin. Bunu da zorunlu kılın. Sorunu çözmenin bir sürü alternatif yöntemi vardır. Quote Link to comment Share on other sites More sharing options...
pro_imaj Posted August 28, 2018 Author Share Posted August 28, 2018 DataSet.DisableControls; try // loop here finally DataSet.EnableControls; end; Bunu deneyin. Bunu deneyince aşağıdaki hata oluşuyor. Quote Link to comment Share on other sites More sharing options...
Administrators Farshad Mohajeri Posted August 28, 2018 Administrators Share Posted August 28, 2018 Peki loop'tan sonra dataset'i tekrar eski pozisyonuna getiriyor musunuz? Quote Link to comment Share on other sites More sharing options...
pro_imaj Posted August 28, 2018 Author Share Posted August 28, 2018 İlgili kodu Datasource için yazdığımda yukarıda hatayı Grid için yazdığımda ise program kilitleniyor. Quote Link to comment Share on other sites More sharing options...
Administrators Farshad Mohajeri Posted August 28, 2018 Administrators Share Posted August 28, 2018 Bu loop'u tam olarak nerede ve hangi eventin içerisinde çağırdığınızı öğrenebilir miyim? Quote Link to comment Share on other sites More sharing options...
Administrators Farshad Mohajeri Posted August 28, 2018 Administrators Share Posted August 28, 2018 İlgili kodu Datasource için yazdığımda yukarıda hatayı Grid için yazdığımda ise program kilitleniyor. ??? Quote Link to comment Share on other sites More sharing options...
pro_imaj Posted August 28, 2018 Author Share Posted August 28, 2018 Peki loop'tan sonra dataset'i tekrar eski pozisyonuna getiriyor musunuz? Datasetin pozisyonuyla bir işim yok. Datasource bağlı olduğu Query yi kapatıyorum. UniMainModule.MemYeni.IsEmpty; UniMainModule.MemYeni.EmptyDataSet; UniMainModule.MemYeni.Close; UniMainModule.MemYeni.Open; Quote Link to comment Share on other sites More sharing options...
Administrators Farshad Mohajeri Posted August 28, 2018 Administrators Share Posted August 28, 2018 Datasetin pozisyonuyla bir işim yok. Datasource bağlı olduğu Query yi kapatıyorum. UniMainModule.MemYeni.IsEmpty; UniMainModule.MemYeni.EmptyDataSet; UniMainModule.MemYeni.Close; UniMainModule.MemYeni.Open; O zaman Grid son girilen datayı hangi Row'a yazması gerektiğini nasıl bilecek? Quote Link to comment Share on other sites More sharing options...
Administrators Farshad Mohajeri Posted August 28, 2018 Administrators Share Posted August 28, 2018 Konuyu öğrenme amaçlı devam ettiriyorum, Yukarıda bahsettiğim seneryomu devam ettirirsem yani grid i datasource dan ayırdım, query ile işlemleri yaptım, query i kapatıp tekrar açarsam, grid i tekrar datasource a bağlarsam, grid refresh lenmez mi? yada grid.refresh gibi bir procedure kullansam ? gerekli konumlandırma ihtiyacı olursa sataset i locate yada bookmark ile, grid i de forumda vardı ilgili row a konumlandırsam? İllaki böyle yapmak değil amacım, Bende alışkanlık 64k ya peek poke lar program yazmaya başladım web de ise lazım oldukça yaz nasılsa düz string ben hala alışamadım da Form eklenen her bir değişken class, server da memory, işlem yükü, üstüne bunu session sayısınlada artacak olunca planlama ihtiyacı hissediyorum. Malum, server memory ve disk size ı artıkça para demek, para ödemek değilde, ödediğim paraların kurşun olarak geri dönüyor olması canımı çok sıkıyor ayrıca. Grid'i datasource'dan ayırdığınız anda grid de içinde datayı boşaltır. Quote Link to comment Share on other sites More sharing options...
pro_imaj Posted August 28, 2018 Author Share Posted August 28, 2018 ??? UniMainModule.DSMemYeni.DataSet.DisableControls; try // loop here finally UniMainModule.DSMemYeni.DataSet.EnableControls; end; Bu şekilde //loop here yerine loop kodlarını yazdığımda program screen mask oluyormuş gibi donuyor. Aslında sorunum şu. Kullanıcı yazdığı değere enter demeden işlem yaparsa bu hata oluşuyor. Bunu başka hangi yöntemle yaparım. Bu enter işi grid üzerinden veri girişlerinde hep sorun oluyor, belki ben mantığını anlamıyor olabilirim. Quote Link to comment Share on other sites More sharing options...
Administrators Farshad Mohajeri Posted August 28, 2018 Administrators Share Posted August 28, 2018 Yukaridaki kod hangi event'in içinde çağrılıyor? Quote Link to comment Share on other sites More sharing options...
pro_imaj Posted August 28, 2018 Author Share Posted August 28, 2018 Yukaridaki kod hangi event'in içinde çağrılıyor? UniBitBtn Click Quote Link to comment Share on other sites More sharing options...
Administrators Farshad Mohajeri Posted August 28, 2018 Administrators Share Posted August 28, 2018 Eğer Enter'e basmadı ise zaten o veri hiçbir şekilde sunucuya ulaşmaz. Basmış ise o zaman veri ulaşmıştır ve dataset Edit modundadır. Yapılması gereken o anda Dataset.post'u çağırıp sonra farklı bir query objesi üzerinden ilgili Loop'u yapmaktır. Quote Link to comment Share on other sites More sharing options...
Administrators Farshad Mohajeri Posted August 28, 2018 Administrators Share Posted August 28, 2018 Her halukarda bir test projesi yollarsanız daha detaylı bakabilriz. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.