Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.67/27: Рейтинг темы: голосов - 27, средняя оценка - 4.67
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3

Как выделить строку в БД добавленную запросом?

07.09.2009, 10:45. Показов 5628. Ответов 64
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, у меня есть код
C++
1
2
3
4
5
6
7
8
9
10
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Text = "INSERT INTO Glavnaya (Invent_Number,Number_in_Lan,Department,Processor,Memory,HDD,Room)VALUES('"+Edit1->Text+"', '"+Edit2->Text+"', '"+Edit3->Text+"', '"+Edit4->Text+"', '"+Edit5->Text+"', '"+Edit6->Text+"', '"+Edit7->Text+"')";
ADOQuery1->ExecSQL();
 
 
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Text ="Select * from Glavnaya ORDER BY Invent_Number";
ADOQuery1->Open();
Как можно выделить новую строку добавленную в БД запросом
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.09.2009, 10:45
Ответы с готовыми решениями:

Как выделить новую строку в QTableView добавленную через QSqlQuery
Имеем QSqlQueryModel и припомощи QSqlQuery делается вставка в базу данных, при этом в QTableView данные обновляются, появляется новая...

Как добавленную строку в DGV сохранить в БД
Прошу помочь в проблеме. В access была создана база с таблицей. Таблица состоит из 3х столбцов - код(примари кей), имя, и фамилия. В с#...

Нужно SQL-запросом вернуть самую последнюю добавленную запись
Нужно SQL-запросом вернуть самую последнюю добавленную запись. Такой вариант нормальный? SELECT `message`, `reply` FROM `chat` WHERE `id`...

64
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
08.09.2009, 15:50  [ТС]
Студворк — интернет-сервис помощи студентам
Да, тоже меняю но обновление не происходит хотя надо чтобы оно происходило
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
08.09.2009, 15:52
Sasha, интересно тогда, как твой код может что-то обновить? у тебя идет поиск по новому значению ключевого поля, когда оно еще такого значения не имеет?
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
08.09.2009, 16:02  [ТС]
Так это надо к этому полю обратится через псевдоним или что-то другое посоветуешь?
0
 Аватар для oxotnik
1665 / 1134 / 80
Регистрация: 21.08.2008
Сообщений: 4,734
Записей в блоге: 1
08.09.2009, 16:07
епт... в инструкции INSERT условий не должно стоять
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
08.09.2009, 16:12  [ТС]
Цитата Сообщение от oxotnik Посмотреть сообщение
епт... в инструкции INSERT условий не должно стоять
А в UPDATE?
0
 Аватар для oxotnik
1665 / 1134 / 80
Регистрация: 21.08.2008
Сообщений: 4,734
Записей в блоге: 1
08.09.2009, 16:20
можно
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
08.09.2009, 16:21
oxotnik, на счет Insert вы явно погорячились...


Sasha, тебе надо запомнить старое значение ключа и его в условие подставлять, вот и все
0
 Аватар для oxotnik
1665 / 1134 / 80
Регистрация: 21.08.2008
Сообщений: 4,734
Записей в блоге: 1
08.09.2009, 16:23
Цитата Сообщение от VoodooMan Посмотреть сообщение
oxotnik, на счет Insert вы явно погорячились...
не могу представить себе конструкцию на вставку новых значений в таблицу, где нужно было бы условие
подскажи как это?
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
08.09.2009, 16:25  [ТС]
Я так понял при помощи функции Locate ()? А через псевдоним к этому полю можна обратиться?
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
08.09.2009, 16:46
oxotnik, пардон, это я погорячился, но все же как вариант (а в оракле в pl /sql допускается условие после ключевого слова when (не юзал - в хелпе просто видел)):
SQL
1
INSERT INTO TABLE SELECT * FROM table2 WHERE <условие>
также можно и таблицы создавать с условием (но не уверен, что все базы такое поддерживают)...
Sasha, псевдоним не поможет, пример:
update table set key = 90 where key = 90 (а нужное значение key = 50 (к примеру)), тогда обновляется либо несуществующая запись, либо не та, что хотелось (если запись с ключом уже есть)... и тебе даже Locate не надо... потому что ты юзаешь грид, возьми значение из грида и поставь в условие - проблема решена...





0
 Аватар для oxotnik
1665 / 1134 / 80
Регистрация: 21.08.2008
Сообщений: 4,734
Записей в блоге: 1
08.09.2009, 16:57
VoodooMan в примере условие относится к выборке (вложенному запросу) но не к инструкции добавления
0
08.09.2009, 16:59

Не по теме:

oxotnik, знаю, поэтому и извинился... ошибся я немного...

0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
08.09.2009, 16:59  [ТС]
WooDoMan,ты имеешь ввиду подставить выделенный столбец в гриде?
0
 Аватар для oxotnik
1665 / 1134 / 80
Регистрация: 21.08.2008
Сообщений: 4,734
Записей в блоге: 1
08.09.2009, 17:01
Sasha, обрисуй еще раз точно задачу, а то непонятно что надо, толи выделить новую запись, толи ту которая редактировалась
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
08.09.2009, 17:02
Sasha, текущая строка в гриде соответствует таковой же в источнике данных, поэтому обращаясь по средствам метода FieldByName, получаем любое значение текущей записи, которую ты как раз и пытаешься редактировать
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
08.09.2009, 17:13  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("UPDATE Glavnaya SET Invent_Number =:Invent_Number, Number_in_Lan = :Number_in_Lan, Department = :Department, Processor = :Processor, Memory = :Memory, HDD = :HDD, Room = :Room");
ADOQuery1->SQL->Add("WHERE Invent_Number = "ADOQuery1->FieldByName("Invent_Number")->AsString"");
ADOQuery1->Parameters->ParamByName("Number_in_Lan")->Value = Trim(Edit2->Text);
ADOQuery1->Parameters->ParamByName("Department")->Value = Trim(Edit3->Text);
ADOQuery1->Parameters->ParamByName("Processor")->Value = Trim(Edit4->Text);
ADOQuery1->Parameters->ParamByName("Memory")->Value = Trim(Edit5->Text);
ADOQuery1->Parameters->ParamByName("HDD")->Value = Trim(Edit6->Text);
ADOQuery1->Parameters->ParamByName("Room")->Value = Trim(Edit7->Text);
ADOQuery1->Parameters->ParamByName("Invent_Number")->Value = Trim(Edit1->Text);
ADOQuery1->ExecSQL();
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Text ="Select * from Glavnaya ORDER BY Invent_Number";
ADOQuery1->Open();
Тут что-то по синтаксису не правильно потому-что ошибка выводится
0
 Аватар для oxotnik
1665 / 1134 / 80
Регистрация: 21.08.2008
Сообщений: 4,734
Записей в блоге: 1
08.09.2009, 17:18
ADOQuery1->SQL->Add("WHERE Invent_Number = " + ADOQuery1->FieldByName("Invent_Number")->AsString);
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
08.09.2009, 17:20
Sasha, ты бы завел для редактирований отдельный запрос
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
08.09.2009, 17:22  [ТС]
Так, а это и есть отдельный запрос.
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
08.09.2009, 17:27
AdoQuery1 - для редактирования и AdoQuery1 - для показа в гриде или я что-то в твоем тексте не допонял?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.09.2009, 17:27
Помогаю со студенческими работами здесь

Как сделать видимой последнюю добавленную строку в datagrid
Уважаемые Гуру! После добавления строки в viewModel последняя добавленная строка не видима в DataGrid. Как сделать ее видимой? ...

Не сохраняет добавленную строку
Не сохраняет добавление строки. dataset содержит таблицы с четырех адаптеров. После выполнения показывает что счетчик...

Окрасить только что добавленную строку в Datagridview
Добрый день! Добавляю в цикле ряды в Datagridview: foreach (string source in DicListbox.Keys) {...

Отобразить в ListView только что добавленную строку из БД
Здравствуйте! У меня есть на первой форме ListView, который отображает таблицу базы данных. С этой первой формы вызываю вторую форму, с...

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


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
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