Sql UniDac找不到存储过程架构

Sql UniDac找不到存储过程架构,sql,sql-server,delphi,stored-procedures,unidac,Sql,Sql Server,Delphi,Stored Procedures,Unidac,我已经使用UniDac VCL components for Delphi一年了,但最近开始了一个大型的SQL Server 2012项目,我想用不同的方案分离表和存储过程。我的整个逻辑都在存储过程中,所以程序中没有查询,只有存储过程名称和参数 问题是,当我将存储过程模式从dbo更改为SchemaA,然后尝试从Delphi运行它时,TUniStoredProc组件将其作为ProcedureName而不是SchemaA.ProcedureName查找,这会引发在执行时找不到存储过程的异常 我不能将

我已经使用UniDac VCL components for Delphi一年了,但最近开始了一个大型的SQL Server 2012项目,我想用不同的方案分离表和存储过程。我的整个逻辑都在存储过程中,所以程序中没有查询,只有存储过程名称和参数

问题是,当我将存储过程模式从dbo更改为SchemaA,然后尝试从Delphi运行它时,TUniStoredProc组件将其作为ProcedureName而不是SchemaA.ProcedureName查找,这会引发在执行时找不到存储过程的异常

我不能将不同的模式作为默认模式分配给不同的用户,因为有些用户根据权限使用4-6个模式。我已经尝试过的是手动输入SchemaA.ProcedureName,这非常有效,但是对大约150个组件这样做会花费很多时间,所以我正在寻找更好的解决方案


有什么想法吗?

我不知道这些组件上有多少表单或模块,但如果它们是集中的,则以文本模式打开表单并进行替换

UniDac的宏可能在这里派上用场,你可以使用
{MySchema}.ProcedureName并在连接宏中设置MySchema名称。

因此,您的问题实际上是:如何在所有TUniStoredProc组件中将过程名称从ProcedureName更改为SchemaA.ProcedureName?它们都在一个数据模块中,或者它们分散在您的表单中吗?如果有多个模式而不是一个不太合适的选项:P我的问题更多的是如何强制TUniStoredProc自动检测模式,或者在服务器中设置正确的权限,如果用户拥有db_所有者,他可以在不指定存储过程的情况下查看所有模式架构,是的,我所有的存储过程组件都在两个单独的数据模块中。有什么想法吗如果我只使用一个模式,这将是一个好的决定,但当时我使用了大约7个模式,因此我发现这不是一个选项,因为Unidac不太喜欢模式,所以我决定不使用它们