“Someone else is currently editing this table” Hatası

MapInfo’da bir güncelleme yapıp ardından verilerinizi kaydetmeye çalıştığınızda

“Cannot perform edit. Someone else is currently editing this table.”

hatası ile karşılaşırsanız bu hata sizi şaşırtabilir. Muhtemelen lokal bir MapInfo tablosu ile çalışırken bu hatayı almışsınızdır ve eğer durum buysa hata mesajında belirtilen gerekçe size saçma gelecektir çünkü o an lokalinizde MapInfo tablosunda sizden başkasının editleme yapmadığını bilirsiniz. Peki MapInfo neden böyle garip bir iddiada bulunuyor?

Öncelikle hangi yazılımı kullanırsak kullanalım, bu yazılımlarda karşılaştığımız hata mesajları her zaman bize durumu %100 doğru olarak anlatamayabilir. Bu yüzden karşılaştığımız problemi çözerken olaya mümkün olduğunca geniş bakmaya çalışmamız gerekir. Hata mesajları tabii ki bize önemli bilgiler ve fikirler verebilir. Ama bu mesajla sanki ağ üzerindeki başka bir kullanıcı bizim tablomuzu güncelliyormuş gibi bir izlenim veriliyor.

Bu hata mesajının muhtemel sebebi, güncelleme yapılmış bir MapInfo tablosu askıda iken (kaydedilmemiş veya revert edilmemişken) düzgün kapanmayan bir MapInfo oturumudur. Mesela bir integrated mapping uygulamasındaki bir katmanda güncelleme yaptınız ve bu değişiklikleri kaydetmeden (veya revert etmeden) uygulamayı kapattınız. Böyle bir durumda MapInfo prosesi (MapInfow.exe) askıda kalacaktır. Siz programı yeniden açıp tekrar aynı katmanda güncelleme yapmaya çalıştığınızda ise ortada aynı katmanı güncellemeye çalışan 2 ayrı MapInfo örneği (instance) olduğu için yukarıdaki hata verilecektir.

Durumu düzeltmek için Windows Task Manager ı açın ve askıda kalan MapInfow.exe prosesini sonlandırın.

Bu durumu engellemek için integrated mapping uygulamanızdaki harita formunun Form_Unload olayında gerekli katmanları kaydeden (veya tercihe göre revert eden) bir kod yazabilirsiniz.

mi.do "Commit Table Tablo1"

veya

mi.do "Rollback Table Tablo1"

Bir diğer seçenek de kullanıcıya değişiklikleri kaydetme konusunda seçenek sunmak. Bunu yine Form_Unload olayında aşağıdaki kodu yazarak yapabiliriz:

mi.do "Close All Interactive"

Bu şekilde yaparsak harita formu kapanırken Save Modified Table Data penceresi  otomatik olarak kullanıcıya gösterilir ve kullanıcı isteğe göre değişiklikleri kaydedebilir veya iptal edebilir.

Aslında belki de en iyisi bu duruma hiç düşmemek, yani hiçbir tabloyu asılı (pending) durumda bırakmamak. Bunun için her türlü insert, delete ve update işleminden sonra ilgili tablo commit edilmelidir.

Aklıma gelmişken, yukarıdakine benzer bir şekilde düzgün kapanamamış MapInfo oturumlarının başka zararları da olabilir. Bu askıda kalan prosesler bazen Windows’un kapanmasına bile engel olabiliyor. Eğer Windows’unuz ısrarla kapanmıyorsa hemen power düğmesine basarak kabağı masum bilgisayarınızın başında patlatmayın. Task Manager’ı açarak askıda kalmış MapInfow.exe prosesi varsa bu prosesi öldürün.

Advertisements
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: