ms sql server表更改后奇怪的coldfusion错误

时间:2011-02-23 18:55:27

标签: sql-server sql-server-2005 coldfusion coldfusion-9

我正在使用MS SQL Server 2005在Windows Server上使用ColdFusion 9.我遇到了一个奇怪的问题。

我通过查询数据库中的表,获取必要的信息以及从结果中构建对象来创建对象。所以如果我的表有这些列:

id
name
address

我正在使用get_id(),get_name(),get_address()等方法创建一个对象。所有这些工作正常,当我查询这些方法时,我得到了我期望的结果。

但现在我进去改变桌子。我添加了一个新列,例如“city”。一切正常,对象仍然实例化。但现在我进入并将一些数据放入新专栏。现在我的对象实例化不再起作用了。我收到这样的通用错误:

element ADDRESS is undefined in instance

我注意到我仍然在cfquery语句中包含了cftry标签,因此我将其关闭。现在我看到了这个错误:

unsupported data conversion

所以我去了数据库,我完全删除了新列。现在一切正常,和以前一样。所以当我向这个表添加一个新列时,似乎SQL Server正在尝试对它进行某种数据转换?我没有看到我在哪里被标记在任何地方发生。

非常感谢任何可以给予的帮助!

1 个答案:

答案 0 :(得分:4)

检查以确保您的查询未使用SELECT *来获取列。如果您使用SELECT *,SQL Server可以缓存执行计划而不返回已添加的列。

另一种解决方法是在查询中添加换行符或其他任何内容,以便SQL服务器创建新的执行计划。

无论哪种方式,远离SELECT *,因为它的性能较差,并且肯定会导致这样的问题。