日期:2014-05-18  浏览次数:20549 次

有点难度的问题。急
INSERT   INTO   openrowset( 'Microsoft.Jet.OLEDB.4.0 ',   'G:\DATA\A.mdb '; 'admin '; ' ',ZW_a)   (Item_name,nyear,DWDM,LXDM,LXMC,JFYA,JFYB,DFYA,DFYB,PZYA,PZYB,PZWA,PZWB,PZHM)
  SELECT   ' ', '2005 ', '33012401001 ',ISNULL(LXDM,9),LXMC,JFYA,JFYB,DFYA,DFYB,PZYA,PZYB,PZWA,PZWB,PZHM  
  From   zt001_2005.dbo.ZW_a

在查询分析器中执行正确,但在应用程序中执行报错:
    异类查询要求为连接设置   ANSI_NULLS   和   ANSI_WARNINGS   选项。这将确保一致的查询语义。请启用这些选项,然后重新发出查询。

如果插入的表也是SQL数据库的话,在插入前加上这两句就可以了。
SET   ANSI_NULLS   ON  
SET   ANSI_WARNINGS   ON
但是我要插入到ACCESS数据库中。无法对ACCESS进行如上的设置。
请问有没有其他办法解决。只要能将数据插入到ACCESS表中就行。


------解决方案--------------------
ACCESS没有这两种设置选项
SET ANSI_NULLS ON
SET ANSI_WARNINGS ON
------解决方案--------------------
这两句实际上是可以在代码中写的。
你用的开发环境是什么?
------解决方案--------------------
把语句写在存储过程里,应用程序调用过程


------解决方案--------------------
做兩個連接,一個連接sqlserver,一個連接Access,
把從sqlserver查詢得到結果通過變量臨時存儲,再插入到Access

數據分步循環進行,
------解决方案--------------------
PB的程序,你可以在PB代码中,连接完数据库后,增加下面的语句:
EXECUTE IMMEDIATE 'SET ANSI_NULLS ON ' USING SQLCA;
EXECUTE IMMEDIATE 'SET ANSI_WARNINGS ON ' USING SQLCA;