Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 04.07.2013
Сообщений: 11
MS Access

Не выполняется функция

21.06.2016, 21:55. Показов 650. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
не уверен что это вообще связано с БД, но вот такая ситуация:
2 формы: Form1, Form2
В Form2 Кнопка, по нажатию которой в БД добавляется запись,а также вызывается функция из Form1, которая изменяет несколько глобальных переменных.

Теперь к проблеме, при запуске программы, и нажатию кнопки- запись добавляется, а вот в функцию программа судя по всему не заходит(Параметры не изменяются).
Хотя, установив точку остановы на эту функцию и прогнав ее по шагам - все работают, параметры изменяются.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void __fastcall TForm2::Button1Click(TObject *Sender)
{
AnsiString Name = upName->Text;
AnsiString AMT = upAMT->Text;
AnsiString LINK = upLink->Text;
AnsiString img = uimg->Text;
 
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("INSERT INTO stck (Name,amt,LINK,img)");
ADOQuery1->SQL->Add("VALUES('"+Name+"','"+AMT+"','"+LINK+"','"+img+"')");
ADOQuery1->ExecSQL();
ADOQuery1->Close();
Form1->REFRESH();
Form2->Close();
 
}

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void TForm1::REFRESH()
{
        ADOQuery1->Close();
        ADOQuery1->SQL->Clear();
        ADOQuery1->SQL->Add("SELECT MAX(num) AS maxnumber FROM stck");
        ADOQuery1->Open();
        DBmax =ADOQuery1->FieldByName("maxnumber")->AsInteger;
        ADOQuery1->Close();
        div_t Z;
        Z=div(DBmax,10);
        FullPage= Z.quot;
        FinalPage=Z.rem;
 
}


В чем может быть дело ?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.06.2016, 21:55
Ответы с готовыми решениями:

Не выполняется функция
Здравствуйте. C++ в Atmel Studio. Проблема в том, что компилятор не обращает никакого внимания на самодельную функцию и никак в неё не...

Не выполняется функция
Program Password_man; uses crt; type mas=array of integer; var i,nfact:integer ; Mas4islFact:mas; MasBukvFact:mas; ...

Не выполняется функция
Где ошибка, не подскажете? function bin(){ var arr = ; var start = arr; end = arr.length-1; mid = (start+end)/2; ...

4
480 / 393 / 113
Регистрация: 24.04.2012
Сообщений: 1,632
Записей в блоге: 3
22.06.2016, 04:13
Цитата Сообщение от Verystrangeman Посмотреть сообщение
судя по всему не заходит(Параметры не изменяются)
Что-то как-то не уверенно. Точку остановки поставь, и будешь уверен.
0
1 / 1 / 0
Регистрация: 04.07.2013
Сообщений: 11
22.06.2016, 09:49  [ТС]
Цитата Сообщение от Bit_Man Посмотреть сообщение
Что-то как-то не уверенно. Точку остановки поставь, и будешь уверен.
Хотя, установив точку остановы на эту функцию и прогнав ее по шагам - все работают, параметры изменяются.
Еще раз:
Ставлю точку, иду по шагам- все работает

Убираю точку, запускаю - параметры не меняются
0
480 / 393 / 113
Регистрация: 24.04.2012
Сообщений: 1,632
Записей в блоге: 3
23.06.2016, 05:03
Цитата Сообщение от Verystrangeman Посмотреть сообщение
Убираю точку, запускаю - параметры не меняются
Интересно. Попробуй пересобрать (Build)
0
1 / 1 / 0
Регистрация: 04.07.2013
Сообщений: 11
23.06.2016, 13:34  [ТС]
Цитата Сообщение от Bit_Man Посмотреть сообщение
Интересно. Попробуй пересобрать (Build)
выяснились следующие моменты:
"срабатывала" функция из-за того что в
C++
1
__fastcall TForm1::FormActivate(TObject *Sender)
был тот же код что и в функции.

Сейчас при проходе по шагам(закоментировал код в FormActivate), в функцию он заходит, но переменная DBmax не обновляется, то есть запрос не проходит\не приходит ответ, как это можно проверить?

То, что база по нажатию Button1 обновляется(добавляется новая строка в таблице)- совершенно точно, а значит и по запросу в REFRESH должно возвращаться другое число

Добавлено через 3 часа 25 минут
Добавил сразу после добавления строки в базу - запрос на вывод количества строк

Код из Form2 - Button1:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
ADOQuery2->Close();
ADOQuery2->SQL->Clear();
ADOQuery2->SQL->Add("INSERT INTO stck (Name,amt,LINK,img)");
ADOQuery2->SQL->Add("VALUES('"+Name+"','"+AMT+"','"+LINK+"','"+img+"')");
ADOQuery2->ExecSQL();
ADOQuery2->Close();
 
ADOQuery2->Close();
ADOQuery2->SQL->Clear();
ADOQuery2->SQL->Add("SELECT COUNT (*) AS maximum FROM stck");
ADOQuery2->Open();
ShowMessage(ADOQuery2->FieldByName("maximum")->AsInteger);
ADOQuery2->Close();
 
Form1->REFRESH();
Form2->Close();
и он выводит правду, но переходя в REFRESH делает там такой же запрос, но при этом получает "старое" значение (до добавления)

Код из Form1 - REFRESH
C++
1
2
3
4
5
6
7
8
9
10
11
ADOQuery1->Close();
        ADOQuery1->SQL->Clear();
        ADOQuery1->SQL->Add("SELECT COUNT (*) AS maximum FROM stck");
        ADOQuery1->Open();
        ShowMessage(ADOQuery1->FieldByName("maximum")->AsInteger);
        DBmax =ADOQuery1->FieldByName("maximum")->AsInteger;
        ADOQuery1->Close();
        div_t Z;
        Z=div(DBmax,10);
        FullPage= Z.quot;
        FinalPage=Z.rem;

Все дело в том что я использую 2 комплекта ADO ? но они настроены одинаково

Добавлено через 46 минут
Все, решил эту проблему. Во второй форме собираю эти переменные, а загрузку и обновление произвожу уже в первой.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.06.2016, 13:34
Помогаю со студенческими работами здесь

Не корректно выполняется функция
В общем загружаю конфиг сайта require_once("site.conf"); В конфиге написано следующее: function translit($str) { $tr = array( ...

Почему выполняется функция?
Не могу понять, почему таки выполняется функция? Значения по умолчанию нет, параметры не принимает, а ошибок не выдает Visual Studio 2015 ...

Почему не выполняется функция?
В чем проблема? <?php echo fix_names("BILL"); function fix_names($n1) { $n1 = (strtolower($n1)); return $n1; } ...

Не выполняется функция удаления
Функция удаления не выполняется. Вот код: #include <iostream> #define MAX 15 using namespace std; char *stack; //...

Функция не выполняется в цикле
Всем привет. Вот код функции: function print_attribute_radio( $checked_value, $value, $label, $name ) { // This handles < 2.4.0 bw...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru