2012-09-26 15 views
5

Access 2010'da bir ODBC veritabanı tablosuna (bkz. question 12592953) karşı dinamik bir ekleme sorgusunun nasıl çalıştırılacağını anlamaya çalışıyorum ve birisi showplan hata ayıklama çıktısını etkinleştirmeyi önerdi: techrepublic link. Ancak Access 2010/accdb veritabanları görünüşe göre Jet motorunu kullanmıyor, bu yüzden bana yardımcı olmuyor. Access 2010'dan sorgu planları (showplan.out) nasıl alınır?

Güncelleme

: Bu (tam açıklama yukarıda bağlantılı diğer stackoverflow söz konusu olduğu) Ben çalışma almak için çalışıyorum sorgusu olur. Bir tablonun yerel kopyasını uzak kopyadan yeni satırlarla güncellemesi gerekiyor. Ancak ne olur, Access tüm uzak tabloyu (büyük ve ODBC zaman aşımına neden olur) çeker, sonra WHERE yerel olarak çalışır.
INSERT INTO local (dt, latitude, longitude) 
SELECT dt, latitude, longitude 
FROM remote_odbc, (SELECT max(dt) AS max_dt FROM local) AS sub 
WHERE remote_odbc.dt > max_dt; 

Erişim bir sorgu nasıl görüntülediği hakkında daha fazla bilgi almak için Erişim 2010'da Jet/Debug/gösterim planı defteri hack benzer bir şey var mı?

+0

Erişim DAO yerel olmasına rağmen, ADO ve DAO'ya sahiptir. Yapmaya çalıştığınız Dinamik Ekleme SQL deyiminin bir örneğini bize verin. Geçmişte, Access SQL deyimlerinin – GoldBishop

+0

yapısına yardımcı olacak yardımcı işlevler oluşturdum. Access'in bir SQL ifadesini nasıl gördüğü kadarıyla, çok basit bir SQL deyim altyapısıdır. Bazı çerçeve sözdizimi dışında, çok sağlam değilsiniz. Ekle, Sil, Bırak, Seç ve Access'e özgü bazı ifadeler yapabilirsiniz ancak hepsi budur. Batch Execution yapma yeteneği çok sinir bozucu (MS SQL için Sol Erişim ve şimdi bir istemci için Access'e geri dönüş). Toplu işlem etkisini elde etmenin tek yolu, bir VBA Makrosu ve RecordSet'tir. – GoldBishop

+1

@GoldBishop: Soruyu güncelledim. Tüm detaylar referans olarak verdiğim diğer soruda. – cswingle

cevap

2

Aşağıdaki anahtar gerekir:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Access Connectivity Engine\Engines\Debug] 
"JETSHOWPLAN"="ON" 

yukarıdaki Access 2010 çalıştıran benim Windows 7 kayıt defterinden ihraç ve benim için showplan.out üretmektedir.

5

Teşekkür @Fionnuala

Access 2010 32 bitlik Aşağıdaki anahtar gerekecektir İçin:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Access Connectivity Engine\Engines\Debug] 
"JETSHOWPLAN"="ON" 

veya Windows 7'de 64 bit:

32 bitlik Windows 7'de

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\14.0\Access Connectivity Engine\Engines\Debug] 
"JETSHOWPLAN"="ON" 

Anahtarı girmek için Debug klasörünü oluşturmanız gerekiyordu.

+1

Bu ayarın yürürlüğe girmesi için Access'i yeniden başlatmayı unutmayın. – paulroho