使用环境说明:
后端使用SQL Server数据库,Access前端文件使用ODBC链接表。
问题描述:
SQL语句放在查询中能正常执行读取数据,但在使用Currentprojec.connection.execute 方法执行SQL语句的时候弹出如下错误提示:
方法'Execute'作用于对象'_Connection'时失败,错误号-2147467259
当时以为是Access损坏了或者引用有问题,因为之前使用execute 方法从未遇到过错误,于是多次压缩修复数据库,问题还是依旧,转变思路SQL语句中换了一个表测试此方法,这次却能读取数据,一切正常,那问题应该就出在之前的那个表上,但具体又是什么原因造成此表在Execute方法时执行报错呢?继续测试查找原因,因为当时SQL语句只读取了表中的两个字段(MaterialID,Usage),于是去掉Usage字段,只保留读取MaterialID,测试一切正常,那问题就在Usage字段上,接着测试,将Usage字段也加入,并加上方括号[Usage]此时测试也正常,后来通过网络搜索发现Usage是SQL Server的保留关键字,那就是此问题引起的,对于同保留关键字同名的字段,读取的时候需要加方括号。
解决方法:
如果后端是SQL Server数据库的话,并且表中字段使用了SQL Server中的保留关键字,那么在使用connection对象的Execute方法时需要将相应的字段加上方括号[]。