Задать вопрос
@EVOSandru6

Как в с++ правильно вставить переменную в строку sql запроса?

Есть такой запрос:

myQuery->SQL->Text = "SELECT  f_department.CODE, f_department.NAME FROM f_department LEFT JOIN l_modules_22_department ON l_modules_22_department.CODE_2 = f_department.CODE WHERE l_modules_22_department.CODE_1 = '"+ depBlock[i].moduleCode + "'";


Выдает ошибку:

[BCC32 Error] Unit1.cpp(1099): E2085 Invalid pointer addition
Full parser context
Unit1.cpp(1014): parsing: void showDepFormCreate(pack *)


Ошибка исчезает, если я меняю таким образом:

myQuery->SQL->Text = "SELECT  f_department.CODE, f_department.NAME FROM f_department LEFT JOIN l_modules_22_department ON l_modules_22_department.CODE_2 = f_department.CODE WHERE l_modules_22_department.CODE_1 = " + depBlock[i].moduleCode;


Таким образом я теряю одинарные кавычки, что по идее не очень хорошо, помогите разобраться
  • Вопрос задан
  • 2755 просмотров
Подписаться 2 Оценить Комментировать
Ответ пользователя Армянское Радио К ответам на вопрос (3)
gbg
@gbg Куратор тега C++
Любые ответы на любые вопросы
Никогда не стройте запросы путем конкатенации!
Даже одинарные кавычки не спасут вас от SQL-инъекций. Ищите, как в вашей библиотеке для mySQL реализовать prepare-execute.
Ответ написан
Комментировать