问题:无法找到可安装的ISAM
我正在从MS Access执行查询,以便从MS SQL Server 2005中提取信息。 当我尝试直接打开到表的链接ODBC连接时,它打开没有问题。但是,当我尝试创建无DSN连接时,我收到ISAM错误。
当我尝试执行SELECT
查询时出现以下错误:
“无法找到可安装的ISAM。”
我正在使用的代码如下:
SELECT * FROM [Driver={SQL Server};
Server=Server_Name\Instance;
Database=Database_Name;
Integrated Security=SSPI;].[My_View_Name]
MS Access的帮助提供以下信息:
无法找到可安装的ISAM。 (错误3170) 找不到可安装ISAM文件的DLL。 链接外部表(ODBC或Microsoft除外)需要此文件 Jet数据库表)。所有ISAM驱动程序的位置是 在Microsoft®Windows®注册表中维护。这些条目是 安装应用程序时自动创建。如果你改变了 这些驱动程序的位置,您需要更正您的应用程序 安装程序以反映此更改并在中进行正确的输入 登记处。
可能的原因:
+ 注册表中的条目无效。例如,如果您使用的是Paradox外部数据库和Paradox,则会发生此错误 入口指向不存在的目录或驱动程序。退出 应用程序,更正Windows注册表,并尝试操作 再次。
+ 注册表中的一个条目指向网络驱动器,并且该网络未连接。确保网络可用,并且 然后再次尝试操作。
我还发现了微软的KB文章,解释了何时以及如何处理这些文章。但是,如果它们实际上源于另一类问题,我们就不清楚它们了。
例如:
283881和209805告诉我,ISAM的目的是告诉我如何格式化数据,MS Access的原生格式。 (但我不想以其他方式格式化它,其他格式不列出我认为合适的格式 - 呃)
和,90111告诉我们.ini文件中的驱动程序可能指向MS Access 2.0中错误的位置,版本97 +中不再存在。
奇怪的是我为另一个表设置了无DNS设置,工作正常。我在这里看到的唯一区别是数据库对象的默认命名不是标准的,所以我可能没有在我的语法中正确引用模式。
答案 0 :(得分:2)
尝试在连接字符串的开头添加ODBC;
并删除视图名称周围的括号:
SELECT * FROM [ODBC;Driver={SQL Server};
Server=Server_Name\Instance;
Database=Database_Name;
Integrated Security=SSPI;].My_View_Name