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