【发布时间】:2020-10-30 17:27:24
【问题描述】:
为这个奇怪的问题道歉。
长话短说,我们有一个 Visual FoxPro .prg,它将使用 SQLEXEC() 执行查询,然后使用 AFIELDS() 获取字段名称、字段类型、字段宽度(长度)和小数位数要存储到 SQL 表中的结果集列(即使是从临时表或动态 SQL 中选择的)。
我希望它能够从 SQL Server CLR 运行此 .prg,甚至无需手动打开 Visual FoxPro 应用程序即可使用 xp_cmdshell。
我已经尝试单独在 CLR 中重新创建此功能,但在将其用作 CLR 存储过程时,嵌套的 INSERT INTO 语句一直遇到问题。
此外,我尝试创建为 CLR SQL 函数,但它会尝试执行我们的自定义挂钩并抛出 “过程不存在” 错误,即使被 IF Object_ID() IS NOT NULL 包围.
另外,由于某些查询可能是临时表的结果,我无法使用OPENQUERY 或OPENROWSET。
这里的最终目标是完全摆脱我们的 Visual FoxPro 客户端,但是获取任何扔给它的任何内容的列元数据的能力阻碍了我们。
【问题讨论】:
-
我认为您收到了
Procedure does not exist,因为您没有指定schema -
编辑您的答案并向我们展示您正在运行的代码,然后我们将能够提供更好的建议 - 还包括示例数据和预期结果
标签: sql-server tsql clr visual-foxpro