在Powerbuilder中查看数据存储的内容

时间:2016-06-09 18:03:41

标签: debugging powerbuilder datastore

我正在运行powerbuilder 11.2并尝试调试将数据从文本文件拉入数据存储区的操作。我可以在数据存储区上设置监视并查看有关它的信息,但我想查看数据存储区的实际内容。我已经看到了一些在表格窗口中添加表达式的建议,我插入了以下命令:

[datastore].saveas("c:\test\[datastore].xls", xls!,true)

进入观察窗口,但我得到的只是一个圆圈,红色的线条穿过它。我检查了目录,没有保存。我很长时间没有完成PB开发,这是因为我以前做过PB开发而分配给我。那么,如何在调试模式下转储数据存储的内容?非常感谢任何和所有的帮助。

5 个答案:

答案 0 :(得分:2)

是的,saveas()提示可以快速检查数据存储区中的内容。

但您不必在监视中添加表达式(因为每次评估监视时它都可能替换数据,或者如果数据存储无效则可能会崩溃),而是在“快速监视”对话框中。

  1. 在应填充数据存储区之后设置断点(例如,在retrieve()importString()之后)
  2. 运行您的程序
  3. 当BP触发时,您可以在数据存储名称上进行“右键单击/ QuickWatch”以显示“快速监视”对话框
  4. yourdatastore替换表达式字段中的yourdatastore.saveas("c:\temp\somefile.xls", excel5!, true),然后点击“重新评估”
  5. 如果导出成功,您应该在“快速监视”对话框中看到返回的值为1-1表示存在问题,例如错误的路径或已打开(锁定)的结果文件。
  6. 如果未在该框中安装Office,您还可以使用text!代替excel5!值来查看数据。 excel5!是一种非常古老的格式,观众广为人知,但excel8!xlsx!(在PB11.5.1之后)同样可以接受。

答案 1 :(得分:1)

如果您写入文件的位置是c:\ test,则语法为“c:\ test \”

因此,观察窗口中的正确输入将是:

ids_mydata.saveas("c:\test\mydata.xls", Excel!, true)

这会将当前“ids_mydata”数据存储区中的数据保存到C驱动器上“test”文件夹中名为“mydata.xls”的Excel文件中。

答案 2 :(得分:0)

表达式中存在语法错误。保存类型Excel必须为Excel!XLSX!

保存为Excel 2007及更高版本(需要.NET 3.5或更高版本):

[datastore].saveas("c:\test[datastore].xlsx", xlsx!,true)

以Excel格式保存:

[datastore].saveas("c:\test[datastore].xls", Excel!,true)

答案 3 :(得分:0)

SaveAs不是调试器监视表达式。您必须将其添加到代码中,并在其后的行上放置一个断点。当它达到断点时,在Excel中打开文件。

答案 4 :(得分:0)

您可能会发现它很有帮助。 link说明了如何从不同的缓冲区访问数据。

在调试期间的任何时候,您都会在监视窗口中看到一个红色圆圈,您在其中评估表达式,这意味着您的应用程序已经崩溃。您必须重新启动调试器。

最好使用TRY CATCH语句(我想这不会阻止调试器崩溃)。