Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/25: Рейтинг темы: голосов - 25, средняя оценка - 4.52
4 / 4 / 6
Регистрация: 23.05.2012
Сообщений: 445
1

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

02.12.2014, 09:30. Показов 4805. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть такой запрос:

C++
1
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 *)

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

C++
1
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;

Таким образом я теряю одинарные кавычки, что по идее не очень хорошо, помогите разобраться
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.12.2014, 09:30
Ответы с готовыми решениями:

Как правильно вставить переменную?
Вот программа: #include <iostream> #include <cstdlib> #include <fstream> #include <stdio.h> ...

Как вставить переменную правильно
$pos = $xpath->evaluate("count(//country/preceding-sibling::*)"); Строка кода, как вместо 804,...

Как записать в переменную из SQL запроса к БД?
Проблема такая: На мой SQL запрос выводит столбец ячеек от 1 до 5. Как каждую ячейку записать в...

Как правильно вставить переменную $id в msql запрос?
Как правильно вставить переменную $id в msql запрос? mysql_query('SELECT * FROM...

8
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32841 / 21177 / 8149
Регистрация: 22.10.2011
Сообщений: 36,434
Записей в блоге: 8
02.12.2014, 10:34 2
Лучший ответ Сообщение было отмечено EVOSandru6 как решение

Решение

C++
1
myQuery->SQL->Text = String("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 = ") + QuotedStr(depBlock[i].moduleCode);
1
2 / 2 / 1
Регистрация: 26.11.2014
Сообщений: 34
02.12.2014, 21:54 3
я всегда делал что то вроде этого
C++
1
2
ADOQuery->SQL->Add("select * from table");
ADOQuery->SQL->Add("where pole like '" + edit->caption->Text + "%'");
1
Заблокирован
03.12.2014, 13:31 4
C++
1
2
3
4
myQuery->SQL->Clear();  // очищаем поле от предыдущих запросов
myQuery->SQL->Add("SELECT * FROM table");
myQuery->Prepare(); // отправка данных на сервер
myQuery->Open();     // выполнение запроса
myQuery->ExecSQL() для выполнения операций, не требующих возврата данных (delete/insert/update). При этом Prepare() прописывать не нужно
0
1 / 1 / 1
Регистрация: 12.08.2015
Сообщений: 125
24.08.2015, 17:36 5
Можете подсказать почему у меня после запроса

C++
1
ADOQueryDeveloper->SQL->Text = "SELECT * FROM '"+ComboBox2->ItemIndex+"' WHERE (TRUE = FALSE)";
при компиляции, компилятор говорит "[C++ Error] DBComparisonOne.cpp(29): E2085 Invalid pointer addition"
0
1408 / 571 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
24.08.2015, 17:55 6
avpdnepr,
C++
1
ADOQueryDeveloper->SQL->Text = "SELECT * FROM "+ComboBox2->Text+" WHERE (TRUE = FALSE)";
Добавлено через 52 секунды

Не по теме:

БД Access ?

0
1 / 1 / 1
Регистрация: 12.08.2015
Сообщений: 125
24.08.2015, 18:00 7
Всё верно БД Access

Поправил ошибку, теперь запускается окно "Ошибка синтаксиса в предложении FROM"
0
1408 / 571 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
24.08.2015, 18:02 8
а так
C++
1
ADOQueryDeveloper->SQL->Text = "SELECT * FROM ["+ComboBox2->Text+"] WHERE (TRUE = FALSE)";
1
1 / 1 / 1
Регистрация: 12.08.2015
Сообщений: 125
24.08.2015, 18:12 9
Разобрался, и вправду почти не в тему. Грешил на внесение переменной, а получилось

C++
1
ADOQueryDeveloper->SQL->Text = "SELECT * FROM "+ComboBox1->Items->Strings[ComboBox1->ItemIndex]+" WHERE (TRUE = FALSE)";
Спасибо
0
24.08.2015, 18:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.08.2015, 18:12
Помогаю со студенческими работами здесь

Как вставить переменную в sql запрос?
Так у меня выскакивают абоненты у которых номер телефона начинается на "5" procedure...

Как вставить переменную в строку?
Хочу вставить значение buffer а не прописывать путь. Подскажите char* buffer = new char;...

Как в целочисленную переменную вписать значение из SQL запроса
Скажите пожалуйста как в переменную типа int вписать значение полученное из SQL запроса. Поле UID...

Как в строку между <<<XML вставить переменную
Всем доброго дня! Прошу помощи - бьюсь уже 2 дня... Как в строку переменной $string, вставить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru