2011-03-22 60 views
13

我正在用VS2008调试一个C++应用程序,并且有一些长选择查询,我无法在调试器中看到全文。它只是显示查询的一部分。为什么在Visual Studio 2008调试器中部分显示字符串?

有没有办法看到全文?

在此先感谢。

enter image description here

编辑:可在字符串中的真正的查询是:

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 

并不长,如果你问我。

+0

我们在这里说多久了?我已经浏览了10,000-20,000个字符而没有截断的东西。在你的情况下,它看起来像是在ATL :: CString中。这是否有正确的长度?也许这个字符串实际上被截断了。 – 2011-03-22 16:49:44

+1

单击文本可视化图标,看起来像一个望远镜。如果仍然存在,那么绝对考虑简化查询。 – 2011-03-22 16:56:43

+0

它是一个大约1.000个字符的字符串,是的,它是一个ATL:CString。如何检查它是否有正确的长度?我知道它的完整查询,因为它被执行并且预期的结果被检索。 – 2011-03-22 16:58:53

回答

0

我认为你可以右键点击该项目,然后“复制到剪贴板”。然后将其粘贴到其他文本编辑器中。

+1

不,该值也被部分复制。 – 2011-03-22 16:46:37

+0

右键单击调试器中的项目,不要复制文本框中的文本,那就太晚了! – codymanix 2011-03-22 16:50:03

+0

我已经从可能的地方复制它,结果总是被截断的字符串。 – 2011-03-22 16:56:52

1

请问您的字符串是否包含NUL'\ 0'值?像调试器正在使用的文本框控件将把它们解释为字符串的结尾。

+0

不,我检查了,但查询在工作联盟中选择“union sele”中断。 – 2011-03-22 17:01:26

2

这似乎是Visual Studio中的一个“功能”。我在使用C#的VS2012中看到了同样的情况,只有超过500个字符的字符串。

我找到的解决方案是在调试器中右键单击该变量并对其执行“快速监视”。该字符串在快速监视窗口中未被截断。

+3

对长度超过32768个字符的字符串没有帮助。 – 2015-12-04 17:36:31

9

悬停在您要查看,然后单击放大镜图标以下图标,或者选择右侧的箭头的图标,然后从下拉菜单中选择文本

enter image description here

这是变量结果,我想你问这个......

enter image description here

+2

没有。字符串显示也被剪切。 – 2015-02-27 12:42:37

+2

事实上,对长度超过32768个字符的字符串没有帮助。 – 2015-12-04 17:36:15

+0

看起来VS2015在这个表格上可以显示长度超过32K的字符。应该还有一个限制,但至少比它高。 – ScottRhee 2017-11-10 01:14:55

1

这是一个评论,但确实是我一直在寻找的答案:File.WriteAllText(@"C:\Temp\temp.txt", str)

相关问题