2015-05-13 6 views
-1

Так что я эту строку в <%%> Пометка (JSP), я делаю это в SQL Server 2010.Некорректное Синтаксис

'String deleteCmd = "delete from" +'@table_name' + 
"where" + '@idCol' + "=" + rs.getSting(1);' 

Проблема в том, что я не могу найти ничего плохого в этом строка и сервер продолжает говорить:

Msg 102, Level 15, State 1, процедура JSP_LIST_TABLE, линия 87 Неправильный синтаксис около 'строка deleteCmd = "удалить из" +'.

для меня он на 100% правильный. может ли кто-нибудь увидеть ошибку?

+1

ли это на самом деле заканчивается 'rs.getSting (1)' или это 'rs.getString (1)'? – AHiggins

+0

Попробуйте добавить пробелы между всеми вашими литералами, например, '' delete from "+ '@TableName' +" где "...'. Также подумайте, будет ли сравнение, содержащееся в 'rs.GetSting (1)', иметь одинарные кавычки, которые SQL Server ожидает, если это значение не что иное, как число. Полезным упражнением может быть распечатка строки 'deleteCmd' и посмотреть, выглядит ли она как действительный SQL. – AHiggins

ответ

1

Попробуйте

'String deleteCmd = "delete from " +"@"+table_name + " where " + "@"+idCol + "=" + rs.getString(1);' 
+0

Если я возьму ('), то код больше не является строкой. Потому что im печатает это <% %>, поэтому он читается как код Java. Если я возьму ('), он станет кодом T-SQL –

+0

@PedroCosta Я просто удалил его для лучшего чтения. Главное улучшение - это пробелы между ключевыми словами! –

Смежные вопросы