无法找到表[tablename] -2147189180

11 sql-server vb6 crystal-reports

我使用Crystal Reports XIr2创建了一个报告,用于报告来自数据库的信息以用于我们的应用程序.它是一个交叉表报告,报告从运行存储过程返回的各种数据.

关于运行此报告的应用程序的一小部分 - 它是一个用VB6编写的应用程序,在加载应用程序时会提示您输入用户名和密码,这些用户名和密码在SQL服务器上配置为SQL登录,因此当您登录时您正在针对SQL Server安全性进行身份验证的应用程序.

该报告在Crystal Reports中运行得非常好,但是当我们在客户站点上的应用程序中启动时,我遇到了一些奇怪的行为.它适用于具有"sa"级数据库访问权限的所有用户,但在与其他任何用户一起运行时会出现以下错误;

错误信息

如果我作为在应用程序中获得上述错误的用户直接连接到数据库服务器,则手动运行存储过程可以正常工作而不会出现任何错误.

如果我在SQL服务器上为我们的应用程序"sa"权限中的用户提供错误,则错误将停止发生.

我已经检查了相关存储过程的所有相关执行权限,但如上所述,如果我手动连接到SQL Server并执行该过程,我不会得到上面链接的错误.

如果收到此错误的用户在此报告之前运行另一个报告,则它可以正常工作,但是如果他们在收到此错误后运行报告,则所有报告都会停止工作并需要重新启动应用程序.

有什么想法吗?

小智 1

我建议您确保将报告问题的用户的数据库用户映射的默认架构设置为 dbo。我还建议为此使用数据库角色。