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

Debugging 在Powerbuilder中查看数据存储的内容,debugging,powerbuilder,datastore,Debugging,Powerbuilder,Datastore,我正在运行PowerBuilder11.2,并尝试调试一个将数据从文本文件拉入数据存储的操作。我可以在数据存储上设置一个手表并查看有关它的信息,但我想查看数据存储的实际内容。我看到了一些向“监视”窗口添加表达式的建议,并插入了以下命令: [datastore].saveas("c:\test\[datastore].xls", xls!,true) 但我看到的只是一个圆圈,上面有一条红色的线。我检查了目录,没有保存任何内容。我很久很久没有做PB开发了,这是分配给我的,因为我以前做过PB开发。那

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

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

但我看到的只是一个圆圈,上面有一条红色的线。我检查了目录,没有保存任何内容。我很久很久没有做PB开发了,这是分配给我的,因为我以前做过PB开发。那么,如何在调试模式下转储数据存储的内容呢?非常感谢您的帮助。

您的表达式中有语法错误。另存为类型Excel必须是
Excel
XLSX

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

[datastore].saveas("c:\test[datastore].xlsx", xlsx!,true)
[datastore].saveas("c:\test[datastore].xls", Excel!,true)
另存为Excel格式:

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

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

因此,在“监视”窗口中的正确输入应该是:

ids_mydata.saveas("c:\test\mydata.xls", Excel!, true)
这会将当前“ids_mydata”数据存储中的数据保存到C驱动器“test”文件夹中名为“mydata.xls”的Excel文件中。

是的
saveas()
提示是检查数据存储中内容的快速方法

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

  • 在应该填充数据存储之后放置断点(例如,在
    retrieve()
    importString()之后)
  • 运行你的程序
  • 当BP触发时,您可以在数据存储名称上进行“右键单击/QuickWatch”以显示QuickWatch对话框
  • 将表达式字段中的
    yourdatastore
    替换为
    yourdatastore.saveas(“c:\temp\somefile.xls”,excel5!,true)
    然后单击“重新评估”
  • 如果导出成功,您应该在“快速观察”对话框中看到返回值为
    1
    <代码>-1
  • 表示存在问题,如路径错误或结果文件已打开(锁定)
    您也可以使用
    文本而不是
    excel5值,以便在该框中未安装Office时查看数据<代码>卓越5
    是一种非常古老的格式,观众对此非常熟悉,但是
    excel8
    xlsx(PB11.5.1之后)同样可以接受

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

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

    在调试期间的任何时候,您都会在“观察”窗口中看到计算表达式的红色圆圈,这意味着您的应用程序已经崩溃。您必须重新启动调试器


    最好使用TRY-CATCH语句(我想这并不能防止调试器崩溃)。

    好的,我想我没有正确理解。我试图通过右键单击然后选择“插入”将此表达式输入“监视”窗口。然后新的表达式框出现,我在上面的代码中键入更改数据存储的代码,仍然得到一个红色的圆圈,其中有一行穿过它。这是错误的地方吗?如果是,我如何到达窗口输入此表达式?对不起,我在这方面太业余了,但就像我15年前说的那样。谢谢。数据存储是否实例化?我提出了一个增强请求,以允许从调试器查看数据存储内容。查看数据存储内容的简单方法是将数据从DS复制到DW控件。当您可以轻松快速地完成任务时,请避免使用调试器。