2011-03-22 18 views
13

VS2008 ile bir C++ uygulaması hata ayıklanıyor ve bazı uzun seçim sorguları ile hata ayıklayıcısında tam metni göremiyorum. Sadece sorgunun bir bölümünü gösterir.Neden Visual Studio 2008 hata ayıklayıcıda dizeleri kısmen gösteriliyor?

Metnin tamamını görmenin bir yolu var mı?

Şimdiden teşekkürler.

enter image description here

DÜZENLEME: dize mevcut gerçek sorgu geçerli:

select c.cd_seq, m.diag_code, m.diag_descr, 'S' as source 
from custom_booking_data c 
left outer join meddiagnosis m 
on c.cd_number_value = convert(decimal(28, 8), m.diag_urn) 
where c.custom_data_urn = 4 and c.cd_field = 433 
union 
select c.cd_seq, m.diag_code, m.diag_descr, 'H' as source 
from custom_booking_data c 
left outer join ordiagnosis m 
on c.cd_number_value = convert(decimal(28, 8), m.diag_urn) 
where c.custom_data_urn = 4 and c.cd_field = 594 

Değil uzun Bana sorarsan.

+0

Burada ne kadar süre konuşuyoruz? Kesilmeden 10,000-20.000 karakter uzunluğundaki şeyleri inceledim. Durumunuzda bir ATL :: CString içinde gibi görünüyor. Bu doğru uzunlukta mı? Belki de dize aslında kesilmiş. –

+1

Metin görselleştirici simgesine tıklayın, spyglass'a benziyor. Bu hala klipse, kesinlikle sorgularınızı basitleştirmeyi düşünün. –

+0

Onun yaklaşık 1.000 karakterlik bir dizisi ve evet, bu bir ATL: CString. Doğru uzunlukta olup olmadığını nasıl kontrol edebilirim? Tam sorguyu orada biliyorum çünkü çalıştırılıyor ve beklenen sonuçlar elde ediliyor. –

cevap

0

Öğeyi sağ tıklayıp 'panoya kopyala' seçeneğini bastırabilirsiniz. Sonra başka bir metin editörüne yapıştırın.

+1

Hayır, değer kısmen de kopyalanır. –

+0

Hata ayıklayıcıdaki öğeye sağ tıklayın, metni metin kutusundan kopyalamayın, sonra çok geç! – codymanix

+0

Mümkün olan her yerden kopyaladım ve sonuç her zaman dize kesilmiş. –

1

Dizginiz NUL '\ 0' değerleri içeriyor olabilir mi? Hata ayıklayıcının kullandığı gibi metin kutusu denetimleri, bunları dizenin sonu olarak yorumlar.

+0

Hayır, bunu kontrol ettim ama bir çalışma birliğinin ortasında sorgu bozuk "sendika sele" yi seç –

2

Visual Studio'da bir 'özellik' gibi görünüyor. Ben aynı şeyi sadece 500 karakterden fazla olan bir dizeyle C# kullanarak VS2012'de görüyorum.

Bulduğum çözüm, hata ayıklayıcısındaki değişkene sağ tıklamak ve üzerinde 'Hızlı İzleme' yapmaktı. Quick Watch penceresinde dize kesilmiyor.

+3

32768 karakterden uzun dizelerle yardımcı olmaz. –

9

Hover, sonra simgesine aşağıdaki büyüteç simgesine tıklayın ya da sağ simgenin yanındaki oku seçin ve Bu

enter image description here

açılır menüden Metin'i seçin görüntülemek istediğiniz değişken sonuç, sana bu sorulan düşünüyorum ...

enter image description here

+2

Hayır. Dize de kesilmiş olarak gösterilir. –

+2

Gerçekten de, 32768 karakterden uzun dizelere yardımcı olmaz. –

+0

VS2015'in bu formda 32K karakterden uzun gösterebileceği görünüyor. Hala bir sınır olmalı, ama en azından bundan daha yüksek. – ScottRhee

1

Bu gerçekten bir yorumda ama aradığım cevabı: File.WriteAllText(@"C:\Temp\temp.txt", str)

İlgili konular