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

Вставить переменную в запрос SQL

12.06.2015, 12:02. Показов 2581. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Почитал похожие темы, пробовал, как там предлагают решение, но все равно получаю ошибку. Суть в следующем. У меня в переменную prod типа int записывается число в зависимости от того, что выбрано. Теперь я по двум полям методом RecordCount нахожу одинаковые записи. Этот метод отлично работал на другой таблице. Но в другой таблице не могу записать сам запрос. Ругается на строку:
C++
1
2
3
        AnsiString querySQL = "select *from plan_work where (ID_PRODUCE=" +
            prod + ") and (NUMBER_LOT='" +
            StrToInt(EdAnalysisNumLot->Text) + "')";
Вот сам код кнопки:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
void __fastcall TFormMain::BtAnalysisSaveClick(TObject *Sender) {
    /* Сохраняю в сводной таблице plan_work введенные данные */
    try {
        AnsiString querySQL = "select *from plan_work where (ID_PRODUCE=" +
            prod + ") and (NUMBER_LOT='" +
            StrToInt(EdAnalysisNumLot->Text) + "')";
 
        DM->QueryAnalysisWork->Close();
        DM->QueryAnalysisWork->SQL->Clear();
        DM->QueryAnalysisWork->SQL->Add(querySQL);
        DM->QueryAnalysisWork->Open();
 
        /* ищу в таблице plan_work */
        if (DM->QueryAnalysisWork->RecordCount == 0) {
            /* если запись не найдена, то добавляю из полей редактирования */
 
            DM->QueryAnalysisWork->SQL->Clear();
            DM->QueryAnalysisWork->SQL->Add
                ("insert into plan_work (DATE_PLAN, ID_PRODUCE, ID_PACKING, WEIGHT_PLAN, NUMBER_LOT)"
                );
            DM->QueryAnalysisWork->SQL->Add
                ("values (:newDATE_PLAN, :newID_PRODUCE, :newID_PACKING, :newWEIGHT_PLAN, :newNUMBER_LOT)"
                );
 
            // беру новые значения из полей редактирования:
            DM->QueryAnalysisWork->ParamByName("newDATE_PLAN")->AsDate =
                DateTimePicker2->Date;
 
            DM->QueryAnalysisWork->ParamByName("newID_PRODUCE")
                ->AsInteger = prod;
 
            DM->QueryAnalysisWork->ParamByName("newID_PACKING")
                ->AsInteger = pack;
 
            DM->QueryAnalysisWork->ParamByName("newWEIGHT_PLAN")->AsInteger =
                StrToInt(EdAnalysisWeight->Text);
 
            DM->QueryAnalysisWork->ParamByName("newNUMBER_LOT")->AsInteger =
                StrToInt(EdAnalysisNumLot->Text);
            try {
                DM->QueryAnalysisWork->ExecSQL();
                /* обновим бд завершаем транзакцию */
                DM->QueryAnalysisWork->Transaction->Commit();
                DM->QueryAnalisis->Open();
                /* вновь активируем запрос,
                обновим запрос на показ таблицы,
                завершаем транзакцию*/
                DM->QueryAnalysisVisio->Transaction->Commit();
                // вновь активируем запрос
                DM->QueryAnalysisVisio->Active = true;
            }
            catch (...) {
                ShowMessage("Не получается добавить! ХЗ почему!!!");
            }
        }
        else {
            ShowMessage("Продукт с таким номером уже существует!!!");
        }
    }
    catch (EDatabaseError& E) {
        CatchDBMess(E.Message);
        Application->MessageBox(L"Ошибка операции добавления!", L"Ошибка",
            MB_OK + MB_ICONINFORMATION);
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.06.2015, 12:02
Ответы с готовыми решениями:

Как в с++ правильно вставить переменную в строку sql запроса?
Есть такой запрос: myQuery->SQL->Text = "SELECT f_department.CODE, f_department.NAME FROM...

Записать переменную в SQL запрос
Доброго времени суток. У меня такая проблема, нужно записать переменную в SQL запрос. На этом...

Из комбобокса взять значение и вставить в sql запрос
ADOQuery1->SQL->Add("SELECT SUM(Отели_Номера.Количество) as rem FROM Отели_Номера WHERE ...

Как передать данные в переменную типа TABLE? SQL-запрос с параметрами
Использую RAD XE3, MS SQL2012, ADO. Создается динамический sql-запрос с параметрами. Нужно в...

2
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
12.06.2015, 13:14 2
C++
1
AnsiString querySQL = "select *from plan_work where (ID_PRODUCE=" + IntToStr(prod) + ") and (NUMBER_LOT='" + EdAnalysisNumLot->Text + "')";
1
1 / 1 / 1
Регистрация: 22.12.2010
Сообщений: 128
12.06.2015, 14:57  [ТС] 3
Спасибо!
0
12.06.2015, 14:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.06.2015, 14:57
Помогаю со студенческими работами здесь

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

Кто нибудь знает как вставить переменную VB 6.0 в запрос SQL MS Jet?
Subj Data1.RecordSource = 'SELECT * FROM ObjectDataQuery WHERE '& testie &' = 70' формат запроса...

Как в SQL запрос вставить вторую переменную? Одну получается, а вторую нет
Вместо переменной s% ввожу марку провода А-, АС-, АСИ-... и т.д. После дефиса у них число, равное...

Как в sql запрос вставить еще один запрос правильно?
Есть длинный запрос, в котором можете даже не разбираться если не хотите, но выдает он следующее:...


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

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