Arcobjects kodu olmadan sürüm özelliklerinde birincil anahtarları korumak mümkün müdür?


11

O olduğu için iyi bir fikir değil ilişkilerde birincil anahtar olarak ObjectIDs kullanmak, diğer bazı sütun kullanılacak gerekecektir. Sürüm özellikli özellik sınıflarında birincil anahtar sütunları doldurmak için DBMS dizileri kullanmak mümkün mü, yoksa bunu yapmak için arcobjects kodu yazmak gerekir?

Global kimliklerin kullanılabileceğini duydum , ancak CBS dışı DBA'nın ilgili tabloları tutması genellikle bu fikirde kaşlarını çattı.


Cevabım zayıf olduğu için düzgün bir şekilde çalışmayabilir, çünkü cevabımı bir yoruma taşımak: Birkaç yıl önce, adds tablosunda bir insert tetikleyici kullanmayı denedim. Doğru hatırlıyorsam, bu işe yaradı. Sonunda (ve hızlı bir şekilde) bir ArcObjects çözümüne gittim (saklı yordam olarak adlandırılır), çünkü daha kolaydı (benim için) çünkü yeni bir özellik sınıfı eklerken / eklerken yeni bir tetikleyici yazmak zorunda kalmadım.
Jay Cummins

2
Ben boş bir kontrol ile bir SONRAKİ INSERT tetikleyici (oracle) olduğunu düşünüyorum, bu yüzden yeni satır taşındı eğer mevcut birincil anahtar değeri alacaktı. Boş olsaydı, doldurulurdu. Belki yanılıyorum ve düzgün çalışmıyor ve farkında değildim. Hangi veritabanı kullanılıyor?
Jay Cummins

@ Ayrıntılı bilgi için teşekkürler. Bu soruyu sormamın ana nedeni, bunu yapmak için yazdığım arcobjects kodunun yanı sıra bu soruna başka yaklaşımlar olup olmadığını belirlemektir. Birisine, kapsamlı bir araştırma yapmadan çözümümün mümkün olan tek çözüm olduğunu söylemek istemiyorum. Ve eğer öyleyse, onu korumak ne kadar zor. Ben sadece zaman zaman saklı yordamlar yazmak ve çoğu sql sunucusunda. Bunu (arcobjects yerine) dbms düzeyinde bunu yapmak için bir yol olduğundan şüpheleniyorum ama asla tüm dbms's yakından baktım.
Kirk Kuykendall

Yanıtlar:


7

Evet, mümkündür - birkaç uyarı ile.

Bunu tetikleyicilerle yapabilirsiniz - ancak uygulama DBMS'ye özgü olacaktır (çünkü temeldeki veritabanı (özel) mekanizmasını kullanarak farklı bir AFTER INSERT tetikleyicisi uygulamanız gerekecektir.

Sen olacak değil Ekler Ve Baz Tabloları potansiyel değiştirmek her satır için yinelenen girişler olabilir çünkü (Yani güncellemeler sürüm veritabanlarında modellenmiştir nasıl) bu alan üzerindeki her türlü UNIQUE kısıtı belirtebileceksiniz. Bunu taban tablosunda yapma hatasını yaparsanız, sonunda sıkıştırma işlemleriniz başarısız olmaya başladığında bunu fark edeceksiniz ...

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.