получение ошибки при вставке значений одинарной кавычки - PullRequest
0 голосов
/ 05 октября 2009

Использование SQL Server 2000 и VB6

Table1

EmpName1 

Raja
Rav'i
Ramu'i
Rajes'ih

Table2

EmpName2

....

Когда я вставлял table2.empname2 из table1.empname1, он вставлял только raja, остальные строки не вставлялись, показывая ошибку в '(одинарная кавычка)

"Showing error as incorrect syntax near rav"

код vb6.

INSERT INTO table2 (EmpName) VALUES('" & EmpName & "')

Как мне вставить имя в одинарных кавычках?

Нужна помощь по запросу и коду.

Ответы [ 2 ]

2 голосов
/ 05 октября 2009

Настоятельно рекомендуется использовать параметризованный запрос (см., Например, в этой статье ) вместо построения SQL-запроса в виде строки. Это защищает вас от многих форм SQL-инъекций, а также часто быстрее.

Или, если у вас много взаимодействий с БД, напрямую используйте какую-то среду персистентности.

Ваш запрос не будет работать, потому что в строковых SQL-запросах 'должен быть экранирован (как' '). И кстати, если вы хотите вставить значения из одной таблицы в другую, обычно не стоит делать SELECT, а затем вставлять в цикл, как вы делаете. Просто сделайте

INSERT INTO table2 SELECT ... FROM table1

1 голос
/ 05 октября 2009

Вы можете выбрать один из кавычек, например,

empName = replace (empName, "'", "' '")

или параметризировать ваш запрос ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...