有没有一种方法可以从SQL Server CLR或CMD运行Visual FoxPro代码?

时间:2020-07-10 02:15:57

标签: sql-server tsql clr visual-foxpro

对这个奇怪的问题表示歉意。

长话短说,我们有一个Visual FoxPro .prg,它将使用SQLEXEC()执行查询,然后使用AFIELDS()获取字段名称,字段类型,字段宽度(长度)和要存储到SQL表中的结果集列的小数位(即使从临时表或动态SQL中选择)。

我想要的是它能够从SQL Server CLR运行此.prg,甚至使用xp_cmdshell而不需要手动打开Visual FoxPro应用程序。

我已经尝试过仅在CLR中重新创建此功能,但是在将其用作CLR存储过程时,一直遇到嵌套INSERT INTO语句的问题。

此外,我曾尝试创建为CLR SQL函数,但是即使被{{1包围,它也会尝试执行我们的自定义钩子并抛出“过程不存在” 错误。 }}。

另外,由于某些查询可能是临时表的结果,因此我无法使用IF Object_ID() IS NOT NULLOPENQUERY

这里的最终目标是完全脱离Visual FoxPro客户端,但是获取抛出的列元数据的能力使我们受阻。

1 个答案:

答案 0 :(得分:0)

(实际上不是答案,在评论中写这里太乱了) 如果我理解正确,那么所涉及的表是VFP表,并且具有一些存储过程函数(可能用于insert \ update \ delete触发器或验证检查)。

如果是这种情况,恐怕您不走运。最好的选择是在它们之间放置一个VFP COM对象,或者使用SetResultSet()使用VFP SP-如果存在不受支持的VFP命令,则可能会失败。

另一方面,您说它以SqlExec()开头,则可能不是VFP表。然后,您可能会创建CLR函数。您是否可以共享更多详细信息以及VFP和C#代码。

相关问题