2012-06-08 32 views
9

Bir sorgu üzerinde çalışıyorum ve seçili bir deyimde TSQL "FOR BROWSE" seçeneğinde Microsoft'tan en az belge bulundu.TSQL "FOR BROWSE" seçeneği ne için kullanılır?

KABUL EDİLDİĞİM için, imleçler için bir seçenek olarak belgelendim, ancak bunu kullanmanın iyi bir örneğini veya bir SELECT ifadesinde KIRMIZI IÇIN kullanmak için nedenleri bulamadık.

TSQL SELECT deyiminde FOR BROWSE kullanmanın iyi nedenleri nelerdir?

Ben Bildiğim kadarıyla söyleyebilirim SQL Server 2008 ve 2012.

+1

Bir göz atın: http://msdn.microsoft.com/en-us/library/ms173812.aspx – Lamak

+0

Evet, bunu okudum ve bunu elde edebildim "Tarama modu satırları taramanızı sağlar SQL Server tablonuzda ve tablonuzdaki verileri tek seferde bir satırda güncelleyin "Ancak bu nasıl çalışır? Sonuç kümesinde döngü yaparken güncelleme bildirimleri yayınlıyorsam bunu kullanabilir miyim? –

cevap

7

kullanıyorum. Bir veya daha fazla kullanıcının aynı kaynağa ait verileri aynı anda erişip güncellediği bir uygulamada, optimistic concurrency control'u uygulamak için bir arabirim gibi görünüyor. Ayrıca uyumlu bir ön uç kütüphanesi ile birlikte çalıştığı görülmektedir (DB-Library). Bununla birlikte, yukarıdaki "For Browse" ifadesini kullanmadan yukarıdakilerin tümünü gerçekleştirebildiğiniz gibi, bunun bir şekilde kullanılmayan bir mekanizma olduğu görünecektir. Bu, DB Kitaplığı (kullanımdan kaldırılmış bir C kitaplığı) çağrısı olan "dbopen" adlı iki DBPROCESS yapısı oluşturulmasının gerekliliği ile daha da doğrulanabilir. Seçilen verilerine dayalı güncellemeniz için veri seçme diğeri başka: Ayrıca

, göz atma modu iki DBPROCESS yapılarını gerektirir. DB-Library ile birlikte bir "Göz İçin" sorgusu kullanmanın src

Here is an example. Nihayetinde, bu mekanizmanın geriye dönük uyumluluk amacıyla hala var olduğu sonucuna varmak mantıklı olacaktır. Yani, DB Kitaplığı'nı kullanarak C tabanlı bir istemci tutuyorsanız, bu sql hakkında çok fazla endişelenmeyeceğim "for clause".

bazı diğer kaynaklar

Bir daha gözlem

FOR BROWSE ile bildirilen imleçler, yalnızca OPEN CURSOR işlemi sırasında kayıtsız değişiklikler için (imleç sahibi dahil herkes tarafından hazırlandı) beklemelidir. İmleç açıldıktan sonra, sonraki değişiklikler değil, imlecin beklemesine neden olur. Bir imleç tekrar açıldığında, değiştirilmemiş değişiklikler tarafından engellenebilir. Bir SQL Server bağlantısı üzerinde bir SQL SELECT deyimi için GÖZAT veya SET NO_BROWSETABLE ON kullanarak İÇİN ekleme src

1

daha ayrıntılı şema bilgilerini almak gerekebilir.

Bir uygulama, ODBC işlevi SQLColAttribute tarafından döndürülen bazı ayrıntılar SQL SELECT FOR BROWSE eklenmiş sürece boş bir dize döndürdüğünden, bir uygulama doğrudan veya dolaylı olarak SQL Server ile ODBC katmanı üzerinden etkileşim halinde yararlı olabilir.

Örneğin, C++ uygulamanız libodbc++ kullanıyorsa ve SELECT * FROM A, B sorgularından bir sonuç alırsanız, ResultSetMetaData nesnesinden sütunların tablo adlarını alamazsınız. Ancak, FOR BROWSE'u eklerseniz, tablo adları dürüstçe doldurulur.

İlgili konular