странные ошибки coldfusion после изменения таблицы сервера ms sql - PullRequest
1 голос
/ 23 февраля 2011

Я работаю с ColdFusion 9 на Windows Server, использую MS SQL Server 2005. У меня странная проблема.

Я создаю объект, запрашивая таблицу в базе данных, получая необходимую информацию и создавая объект из результатов. Так что, если в моей таблице есть эти столбцы:

id
name
address

Я создаю объект с помощью таких методов, как get_id (), get_name (), get_address () и т. Д. Все это работает нормально, и когда я запрашиваю эти методы, я получаю ожидаемые результаты.

Но теперь я иду и меняю стол. Я добавляю новый столбец, например «город». Все в порядке, объект все еще создается. Но теперь я вхожу и помещаю некоторые данные в этот новый столбец. Теперь мой объект больше не работает. Я получаю общие ошибки, как это:

element ADDRESS is undefined in instance

Я заметил, что у меня все еще есть теги cftry, обернутые вокруг оператора cfquery, поэтому я их снимаю. Теперь я вижу эту ошибку:

unsupported data conversion

Итак, я иду в базу данных и полностью удаляю новый столбец. Теперь все работает правильно, как и раньше. Таким образом, кажется, что когда я добавляю новый столбец в эту таблицу, SQL Server пытается выполнить какое-то преобразование данных на нем? Я не вижу, где я отмечал, чтобы это произошло где-либо.

Любая помощь, которая может быть оказана, будет высоко оценена!

1 Ответ

4 голосов
/ 23 февраля 2011

Убедитесь, что ваш запрос не использует SELECT * для получения столбцов.SQL-сервер может кэшировать планы выполнения и не возвращать столбцы, которые были добавлены, если вы используете SELECT *.

Другой способ исправить это - просто добавить в запрос разрыв строки или что-то еще, чтобыэтот SQL-сервер создаст новый план выполнения.

В любом случае, держитесь подальше от SELECT *, так как он менее производительный и может определенно привести к таким проблемам.

...