С Новым годом! Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
1 / 1 / 2
Регистрация: 18.12.2013
Сообщений: 239
1

Не могу понять почему меняются значения в таблице

25.10.2015, 12:12. Показов 1324. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Не могу понять, почему при выполнении этого кода происходит изменение значения в последней строке таблицы список_нарушений, я ведь из этой таблицы получаю только значение, а добавляю данные в таблицу журнал_нарушений?

В первом комбобоксе выбираю фамилию, во втором комбобоксе выбираю нарушение и по нажатию кнопки добавляю запись в таблицу журнал_нарушений

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
procedure TForm1.FormCreate(Sender: TObject);
begin
with ADOQuery1 do begin //Формируем список фамилий
open;
while not EOF do
begin
DBComboBox1.items.add(FieldByName('Фамилия').AsString);
next;
end;
end;
DBComboBox1.Text:= DBComboBox1.items[0];
with ADOQuery3 do begin //Формируем список нарушений
open;
while not EOF do
begin
DBComboBox2.items.add(FieldByName('Нарушение').AsString);
next;
end;
end;
DBComboBox2.Text:= DBComboBox2.items[0];
end;
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
procedure TForm1.JvBitBtn1Click(Sender: TObject);
Var
narID:Integer;
begin
narID:=ADOQuery3.Lookup('Нарушение',DBComboBox2.Text,'ID');
with ADOQuery2 do begin
 Active:=False;
 SQL.Clear;
 SQL.Add('Insert журнал_просмотров (Фамилия,НарушениеID)');
 SQL.Add('Values ("'+DBComboBox1.Text+'","'+IntToStr(narID)+'");');
 ExecSQL;
end;
end;
В журнал нарушений я заношу не наименование, а ID нарушения.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.10.2015, 12:12
Ответы с готовыми решениями:

Код крашится при вводе ЛЮБОГО значения, не могу понять почему
#include <iostream> #include <string> #include <windows.h> using namespace std; main() {...

Никак не могу понять почему идет ошибка при подсчете среднего значения
Вычислить среднее арифметическое кодов элементов отсортированного массива, имеющих индекс кратный...

В таблице значений после отправки на печать меняются значения
Добрый день. Всю голову сломал. Есть таблица значений. Выводим её на печать. (появляется...

Почему значения в матрице не меняются?
Подскажите. По какой причине значения в матрице не меняются?

15
5571 / 4422 / 1079
Регистрация: 29.08.2013
Сообщений: 27,662
Записей в блоге: 3
25.10.2015, 15:27 2
mserg1972,
а у вас зачем используются DBCombobox, а данные вы пишите в них ручками?
DBCombobox он для автоматического получения данных из колонок.

покажите запросы в ADOQuery
0
1 / 1 / 2
Регистрация: 18.12.2013
Сообщений: 239
25.10.2015, 18:46  [ТС] 3
В dbcombobox данные не заходят автоматом.

Добавлено через 2 минуты
Запросы в qwery простые selectы
ADOQwery1 select*from журнал_просмотров
ADOQwery2 select*from список_нарушений

Добавлено через 1 минуту
По ошибке (журнал_просмотров и журнал проверок одно и то же)
0
1 / 1 / 2
Регистрация: 18.12.2013
Сообщений: 239
25.10.2015, 18:59  [ТС] 4
Поторопился написать.
во втором qwery я формирую insert/
а в 1 и в 3 выбираю данные для комбобоксов
ADOQwery1 select*from журнал_просмотров
ADOQwery3 select*from список_нарушений
0
5571 / 4422 / 1079
Регистрация: 29.08.2013
Сообщений: 27,662
Записей в блоге: 3
25.10.2015, 19:07 5
Цитата Сообщение от mserg1972 Посмотреть сообщение
В dbcombobox данные не заходят автоматом.
это у вас они не заходят. используя query и datasourse (насколько я помню) можно это сделать

Попробуйте просто сменить на обычные Combobox. Код можете не менять - просто переименуйте обычные в DBCombobox.
0
1 / 1 / 2
Регистрация: 18.12.2013
Сообщений: 239
25.10.2015, 19:16  [ТС] 6
Нет, не зайдут они автоматом, весь интернет в этом упражнялся. Вопрос в принципе не в этом а в том почему в таблице данные меняются когда я не использую insert к таблице список_нарушений
0
5571 / 4422 / 1079
Регистрация: 29.08.2013
Сообщений: 27,662
Записей в блоге: 3
25.10.2015, 19:46 7
Лучший ответ Сообщение было отмечено mserg1972 как решение

Решение

mserg1972,
я вам 100% говорю что при связи DBCombobox, DataSourse и ADOQuery можно вывести столбец в DBCombobox без
Цитата Сообщение от mserg1972 Посмотреть сообщение
with ADOQuery3 do begin //Формируем список нарушений
open;
while not EOF do
begin
DBComboBox2.items.add(FieldByName('Нарушение').AsString);
next;
end;
это раз.

а во вторых, возможно!!!, при изменении значения в DBCombobox меняется значение и в таблице.
1
1 / 1 / 2
Регистрация: 18.12.2013
Сообщений: 239
26.10.2015, 07:58  [ТС] 8
Если вы приведете рабочий пример такой связи - буду очень благодарен, так как перерыв ссылки по этой проблематике-везде нашел только такой способ наполнения списка в dbcombobox

Добавлено через 2 часа 0 минут
С проблемой разобрался, надо было в ADOQuery3 поменять значение LockType на ltBatchOptimistic и значения из комбобокса перестали прилетать в таблицу при выборе значения из списка.
0
5571 / 4422 / 1079
Регистрация: 29.08.2013
Сообщений: 27,662
Записей в блоге: 3
26.10.2015, 09:23 9
вот смотрите
Есть Connection, Query, DataSourse и DBCombobox
Устанавливаем связь, в квери запрос, связываем так

Connection -> Query -> DataSourse -> DBCombobox
В DBCombobox выбираем поле которое нужно вывести
Миниатюры
Не могу понять почему меняются значения в таблице  
0
1 / 1 / 2
Регистрация: 18.12.2013
Сообщений: 239
26.10.2015, 09:59  [ТС] 10
Пробовал я так. Показывает только одну первую строку запроса. Можете выложить рабочий пример?
0
1 / 1 / 2
Регистрация: 18.12.2013
Сообщений: 239
26.10.2015, 10:15  [ТС] 11
Вот, настроил как у вас указано:
Миниатюры
Не могу понять почему меняются значения в таблице  
0
5571 / 4422 / 1079
Регистрация: 29.08.2013
Сообщений: 27,662
Записей в блоге: 3
26.10.2015, 10:35 12
блин, я с института был уверен что DBCombobox показывает всю колонку.
а оказывается это не так. нужно какие-то исходники править что бы он такое мог.

Единственное что полезное нашел - при редактировании данных в DBCоmbobox редактируется активная запись набора. Так что аккуратнее с ним.

Используй обычные и руками заполняй поля. Извиняюсь.

Добавлено через 3 минуты
ЗЫ Есть JvDBCombobox (из бесплатного JVLC) - так вот он работает правильно
1
3759 / 2263 / 705
Регистрация: 29.05.2013
Сообщений: 9,616
26.10.2015, 10:46 13
qwertehok, несколько не прав. Значение из DBComboBox действительно будет автоматом в таблицу попадать, но вот свойство Items автоматом не заполнится. Ибо неоткуда.
А вот DBLookupComboBox очень даже подойдет. В нем как раз есть возможность указать табличку для выпадающего списка, и табличку куда выбранное значение вписать.
1
1 / 1 / 2
Регистрация: 18.12.2013
Сообщений: 239
26.10.2015, 12:30  [ТС] 14
Изменил, проект, скорректировал некоторые данные, несущественно по теме.
Вложения
Тип файла: rar Test Ok.rar (3.66 Мб, 2 просмотров)
0
5571 / 4422 / 1079
Регистрация: 29.08.2013
Сообщений: 27,662
Записей в блоге: 3
26.10.2015, 12:35 15
mserg1972, а что в проекте нужно смотреть?
0
пофигист широкого профиля
4753 / 3190 / 860
Регистрация: 15.07.2013
Сообщений: 18,475
26.10.2015, 14:21 16
Зачем вообще нужно было использовать TDBCombobox в данной программе? Чем обычный TCombobox не устроил?
0
26.10.2015, 14:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.10.2015, 14:21
Помогаю со студенческими работами здесь

Почему в массиве меняются значения?
Добрый вечер. Сразу код. // ConsoleApplication1.cpp : Defines the entry point for the console...

Не могу понять почему не могу считать символьный ряд через cin.getline
Не могу понять почему не могу считать символьный ряд через cin.getline.Помогите позязя. #define ...

Не могу понять, почему программа работает неправильно( Знаю, что где-то ошибки, но не могу найти
{Ввести последовательность натуральных чисел Aj j=1...n (n<=1000). Упорядочить последовательность...

Не могу понять в чем ошибка в таблице
Может ошибка когда был расчет среднего балла.Условия таковы:Стипендия рассчитывается следующим...


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

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