我们在 Visual FoxPro 中有一个非常古老的数据源(基于文件),我们目前通过 ODBC 数据源通过链接表使用它。最近,我们开始遇到问题,因为我们防病毒套件的最新更新正在阻止它以这种方式连接。有其他不使用相同驱动程序的 ODBC 数据源没有此问题。
此外,Visual FoxPro 驱动程序 ODBC 驱动程序在使用注册表时被硬塞,因为 Windows 7 不再支持它。
将我的 Visual FoxPro 数据源添加为 SQL Server 中的链接服务器,然后添加到 MS-Access 数据库中,将受影响的表重新链接到它是解决此问题的可能方法吗?注意:MS-Access 数据库使用 VBA 和查询来检索和操作数据。
您应该能够通过在 SQL Server 中创建视图来解决这个问题,这些视图是链接服务器中表的有效包装器。您当然必须处理链接服务器的额外安全配置层,从而确保访问用户使用正确的凭据连接到外部数据(无论是每个用户的东西,还是只是一组全局的用于访问 FoxPro 数据的每个人的凭据)。
密切关注性能,因为 Access 将生成针对 SQL Server 的查询,并且开始时往往有点冗长。SQL Server 然后将生成查询以从 FoxPro 中获取数据。有了这么多层的查询生成,性能对于大型表来说可能是个问题,而且很难诊断或改进它。
如果 FoxPro 数据主要是静态历史数据,那么我建议将其引入 SQL Server。如果仍有读/写活动发生,那么您将不得不接受链接服务器方法,或者通过 SSIS 或其他一些 ETL 定期刷新 SQL Server 中的数据。