Ошибка cfupdate: как увидеть больше отладочной информации

У меня проблема с недавним сбоем базы данных. После восстановления данных я теперь получаю некоторые странные ошибки синтаксического анализа, но не ясно, есть ли они в данных, или это что-то еще. См. Прикрепленное изображение, но cfupdate хранит данные в таблице из формы отправки.

В форме есть кнопка ввода, которая называется "далее", и этот контент сохраняется в БД.

Итак, у меня следующий вопрос:

  1. Есть ли способ узнать, что такое SQL-запрос и где произошла эта ошибка?
  2. Любые подсказки или подсказки, почему я получаю эту ошибку?
  3. Любой способ увидеть больше информации, которая может помочь? Режим отладки?

Это работает на ColdFusion MX7 с базой данных MS Access.

Ошибка:

Error Executing Database Query.

Syntax error: Stopped parse at NEXT

The error occurred in \\******\scholardetails2_en.cfm: line 19
17 : <!--- if coming from page1, save data to database and renew session.txtEmail --->
18 : <cfif IsDefined("Form.txtFirstName")>
19 :    <cfupdate dataSource="****" tableName="tblApplications">
20 :    <!--- <cfset Session.txtEmail=Form.txtEmail> --->
21 :    <!--- <cfset Session.language=Form.language> --->
SQL   update tblApplications set TXTDOB= (param 1) 
,TXTPFIRSTNAME= (param 2) ,TXTPOB= (param 3) 
,TXTFLYNAME= (param 4) ,TXTOFFNAME= (param 5) 
,TXTOFFCITY= (param 6) ,TXTFIRSTNAME= (param 7) 
,TXTPROVINCE= (param 8) ,TXTOFFPCODE= (param 9) 
,TXTGRANTS= (param 10) ,TXTEMPID= (param 11) 
,RDOGENDER= (param 12) ,CBOCOUNTRY= (param 13) 
,TXTSTADR2= (param 14) ,TXTPFLYNAME= (param 15) 
,TXTTELNO= (param 16) ,LANGUAGE= (param 17) 
,TXTOFFSTREET2= (param 18) ,TXTOFFSTREET3= (param 19) 
,TXTPOSITION= (param 20) ,TXTCITY= (param 21) 
,CBOOFFCOUNTRY= (param 22) ,TXTSTADR1= (param 23) 
,TXTPMIDNAME= (param 24) ,NEXT= (param 25) 
,TXTDEPT= (param 26) ,TXTPCODE= (param 27) 
,TXTPPHONE= (param 28) ,TXTMIDNAME= (param 29) 
,TXTOFFSTREET1= (param 30) ,CBOCOC= (param 31) ,TXTOFFPROVINCE= (param 32) 
,TXTSTADR3= (param 33) ,TXTPEMAIL= (param 34) 

where txtEmail= (param 35)
DATASOURCE    ****
VENDORERRORCODE   172032
SQLSTATE      2A000

1 ответ

Решение

Моя личная рекомендация будет заменить это cfupdate заявление с сопоставимым cfquery, Любая полученная информация об ошибке будет скрыта архитектурой cfupdate тег.

Если вы действительно чувствуете себя в браке с оригинальным кодом, вы можете добавить атрибут formfields к cfupdate пометьте и пропустите поле "следующий" из списка столбцов для обновления.

<cfupdate datasource="***" tableName="tblApplications" 
formFields="txtpfirstname,txtpmidname,txtplastname,txtdob,txtpob,..." />

Мое первое предположение заключается в том, что содержимое поля формы "следующий" слишком длинное для этого столбца таблицы, но если вы удалите его из списка обновленных столбцов, это скажет вам, где на самом деле происходит ошибка. Если после удаления столбца "next" вы получите сообщение об ошибке "txtdept", то вы будете знать, что ошибка действительно возникает в "txtpmidname" (и я думаю, все равно значение будет слишком длинным).

Дэн прав, что вы можете найти информацию о сервере (номер версии и т. Д.) В server объем. Сервер Railo или BlueDragon будет иметь дополнительную структуру, но, как упоминал Дэн, он ничего не скажет вам о драйверах базы данных. Эта информация находится в Администраторе ColdFusion, если она есть где-то, но, скорее всего, просмотр версий драйверов не сможет пролить свет на проблему. Все это возвращает меня к моему первоначальному предложению: заменить cfupdate пометить с cfquery - это самое быстрое и простое решение.

Другие вопросы по тегам