2009-12-21 55 views
0

我们只是将SQL 2000数据库移至新的SQL 2008框。移动之后,我们将SQL 2000框的IP地址绑定到新的SQL 2008框。这工作,除在Windows 2000 SP4箱运行的VB6应用程序,我们所得到的错误:查询无法更新,因为FROM子句不是一个简单的表名

“查询无法进行更新,因为FROM子句是不是一个单一的简单的表名”

查看实际错误消息截图如下: http://screencast.com/t/MTViNDBh

做一些搜索,我发现这是一个ODBC错误 - 不知道如何解决?这个应用程序一直在完美地工作,直到我们将所有数据库移至SQL 2008(除了这一个应用程序,这一切都运行良好)。

编辑:

看着他的代码,它似乎没有使用ODBC:

sEncCn = "PROVIDER=" & strEncProvider & "Driver=" & strEncDriver & "Server=" & strEncServer & "UID=" & sUID & "PWD=" & sPWD & "Database=" & strEncDb 

strEncProvider是 “MSDASQL” 驱动程序的 “SQL Server” ..Any想法?

+0

请发表您的查询。如果我们看不清问题所在,我们不能提供解决方法。 – 2009-12-21 19:45:01

+0

我会看看我是否可以抓住这个查询 - 我是盲目的,因为它有一个代码的承包商。以为我会问,看看是否有理由这可能是。 PS-它是Windows 2000 32位上的SQL 2000 SP4,我们将db移到了Windows 2008 64位上的SQL 2008 SP1上。 – 2009-12-21 19:54:46

回答

1

我的猜测是你的VB6应用程序试图打开一个可写的记录集(而不是只读的记录集),并且由于你的FROM子句中的某些内容,SQL Server不能使这个可写。

如此说来,帮助我们,包括帮助您:

  1. 一个与相关的“设置”代码一起未能在VB6(代码即用于创建连接和记录集对象变量等代码。)
  2. 你试图执行
+0

我会得到这2件事情(它来自承包商)。我很好奇,为什么这会成为一个问题?代码没有改变,并已工作多年... – 2009-12-21 19:50:59

1

考虑数据库设置兼容模式到SQL Server 2000的选项可以从在SQL Server Management Studio数据库性能的SQL语句。

+0

兼容模式是邪恶的!我正在寻找一个主要的系统改革,因为以前的维护者采取了简单的方式将兼容级别设置为65而不是修复系统。因此,我们有十年的升级过程,而不是最新的SQL Server升级所需的一些简单升级,因此我们可以使用基本功能,如用户定义的功能。 – 2009-12-21 20:46:18

+0

这已经完成。 – 2009-12-21 21:15:50

0

看看Administrative Tools\Data Sources (ODBC)中的ODBC数据源 - 如果您肯定的话,这是应用程序正在使用的。你可以从那里测试连接吗?它是使用IP地址还是服务器名称?

+0

看着他的代码,它似乎没有使用ODBC: “数据DB sEncCn = “PROVIDER =” &strEncProvider和 “驱动程序=” &strEncDriver和 “服务器=” &strEncServer& “UID =” & sUID&“PWD =”&sPWD&“Database =”&strEncDb - strEncProvider是“MSDASQL” 驱动程序是“SQL Server” – 2009-12-21 21:19:06

相关问题