我有一个vb.net应用程序,它目前使用VS的水晶报告并连接到SQL Server 2008数据库。该应用程序现在需要使用SQL Azure数据库,但是当连接到SQL Azure数据库时,我的所有水晶报告都会出现以下错误: -
无法找到表''。文件错误。无法找到该表。设置数据库连接时,Crystal报表将抛出此错误。堆栈跟踪从我的代码中引出,但使用以下Crystal报告跟踪: -
CrystalDecisions.ReportAppServer.Controllers.DatabaseControllerClass.SetTableLocation(ISCRTable CurTable,ISCRTable NewTable) 在CrystalDecisions.CrystalReports.Engine.Table.set_Location(String value)
报告实际上使用了我已验证的存储过程在Azure数据库中。
为了尝试解决这个问题,我去了报表设计器中的数据库专家,连接到数据库并打算只检查实际显示的报表存储过程,但是连接时数据库专家只显示表和视图并没有存储过程。我使用的用户名实际上是Azure SQL数据库的主用户,当使用任何其他工具(例如使用Microsoft SQL Server管理工作室或SQL Server对象资源管理器)时,存储过程可见且可访问且可以无任何问题运行
当我切换回SQL Server 2008数据库时,报告运行正常。 我通常认为这是一个数据库权限问题,但鉴于上述证据我不相信它。是否有人使用Crystal报表进行Visual Studio连接到应用程序内的Azure SQL数据库?
我正在使用visual studio 13.2库的水晶报告。
答案 0 :(得分:1)
我发现我收到了错误"无法找到表%s"使用Azure数据库和报告选项"验证首次刷新时的存储过程"好了。
关闭此功能,不再出现错误。非Azure数据库不会发生这种情况。
但是,另一个问题是SAP Crystal Reports,Visual Studio版本(SP 10)和完整Crystal 2013(SP4)都无法在设计器中看到Azure SQL存储过程。
我必须解决这个问题,方法是从Azure导出数据库并将其还原到本地SQL服务器,然后针对本地服务器构建报告。然后,我可以针对Azure数据库运行报告。
编辑:应该注意SAP的官方立场是Crystal Reports不支持Azure SQL,目前没有计划这样做。资料来源:http://scn.sap.com/thread/3430662
答案 1 :(得分:0)
检查Azure中的防火墙规则。
在面板中 - >配置
以色列