【发布时间】:2016-05-24 16:22:11
【问题描述】:
首先让我说我是一名继承 VB6/Crystal Reports 应用程序的 Web 开发人员,我也不太了解。
我的客户使用 Access 作为他们的数据库,我已将它们迁移到 SQL Server。回去不是一个选择。迁移后,我几乎让他们的整个应用程序正常工作,但 Crystal Reports 出现问题。
我之前收到一条错误消息,提示“服务器尚未打开”。为了解决这个问题,我将驱动程序从 ODBC 转换为 OLE DB。现在我收到一条错误消息,提示“此处需要一个字符串”。就是这样......没有堆栈跟踪,没有调试按钮。所以我不知道如何追踪问题。
我发现的所有其他类似问题总是有导致问题的特定公式,但这就是我卡住的地方。没有堆栈跟踪或调试按钮或任何东西,我不知道在哪里查找错误。
所以我的问题更多是关于调试策略的问题,而不是具体的代码问题。在哪里查找错误?
如果您需要代码示例,我可以提供,但您必须具体说明如何获取需要查看的任何转储。我正在使用 Microsoft Visual Basic 6.0 编辑器。每当我右键单击 Database Fields 并单击 Verify Database 时,我都会看到错误消息(它首先显示“数据库是最新的”,然后是“需要字符串这里”)。尝试在应用程序中运行实际报告时,我也看到了错误。
我已尝试遍历所有 公式字段 并将数据库字段包装在 CStr(...) 中,但我仍然收到错误消息。我还应该去哪里看?
【问题讨论】:
-
这不是关于转换为字符串...您在公式字段中是否有任何 if else 条件...如果是,您可以发布那些将尝试解决的问题
-
如果您无法提供检查是否和 else 都应返回相同的数据类型...您不能在 if 中返回字符串,在 else 中返回整数...根据您的问题,这是一个调试选项如果这不起作用,请告诉我将尝试其他一些调试选项....如您所知,水晶在提供正确的异常方面非常糟糕
-
@Siva - 在这种情况下,我相信我可能刚刚解决了这个问题。我发现了一个直接在报告中使用的日期字段,所以我创建了一个公式字段,它进行了一些转换和默认设置,以确保它是一个字符串。但我不想将其添加为答案,因为主要问题是关于如何找到错误而不是这个特定问题的原因。我希望在不久的将来会遇到更多这样的错误。除了公式字段,还有其他值得关注的地方吗?
-
公式字段,选择专家公式,抑制条件,突出专家,......以某种方式或其他方式进入公式字段类别
-
还有什么技巧吗?就像“将报表保存到 Crystal Reports 文件并使用 Crystal Reports 应用程序打开它,然后……”(做一些使调试变得更容易的事情……)?我现在遇到了一个不同的问题(如预期的那样),我得到一个“没有为此表查询或过程返回任何行集”,并且所有问题似乎都与存储过程和
SET NOCOUNT ON有关,但到目前为止据我所知,我没有使用任何存储过程。我主要使用常规表格和一个视图。知道去哪里找吗?
标签: sql-server crystal-reports vb6