Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/54: Рейтинг темы: голосов - 54, средняя оценка - 4.76
4 / 4 / 0
Регистрация: 03.03.2011
Сообщений: 23

Удаление выбранной записи из таблицы

09.05.2011, 23:52. Показов 10522. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нашел на форуме способ удаления, и вроде бы он рабочий:
C++
1
2
3
String del=Form1->DBGrid2->SelectedField->AsString;
String f=Form1->DBGrid2->SelectedField->FieldName;
String sql="DELETE from Country WHERE "+f+"="+del+"";
Но вот у меня ничего непроисходит, даже ошибку не выдает (таблица обновляется по нажатию кнопки
C++
1
2
ADOTable2->Active=false;
ADOTable2->Active=true;
)
Работаю в 6-м билдере.
Я так понял оно находит выбранную запись и запросом ее удалят, но не удаляет почему-то. Обьясните мне плугу пожалуйста что не так. =)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.05.2011, 23:52
Ответы с готовыми решениями:

Удаление записи из таблицы
помогите решит проблему удаления из таблицы данных вот нашол нафоруме Я тебе могу предложить как я делаю ...

Удаление одной записи из таблицы
Добрый вечер! Мне нужно удалить из списка одну запись (строку). String table, table_id; int id; ADQuery3->SQL->Clear(); ...

Удаление выбранной записи в Combobox из бд
пытаюсь удалить выбранную запись в Combobox из БД. название таблицы - num, содержит один столбец - num_p делаю так: Dim Con As...

12
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
10.05.2011, 01:06
Цитата Сообщение от L.I.Vladislav Посмотреть сообщение
Нашел на форуме способ удаления, и вроде бы он рабочий:
Где ты его нашёл? Скинь ссылку
0
4 / 4 / 0
Регистрация: 03.03.2011
Сообщений: 23
10.05.2011, 01:08  [ТС]
Цитата Сообщение от Sasha Посмотреть сообщение
Где ты его нашёл? Скинь ссылку
https://www.cyberforum.ru/cpp-... page2.html
1
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
10.05.2011, 01:24
Я тебе могу предложить как я делаю
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
 if(MainForm->ADOQuery1->RecordCount !=0)
     {
         AnsiString ds = "Вы деиствительно хотите удалить выбранную строку? \n\n" + IntToStr(ADOQuery1->FieldByName("Invent_Number")->AsInteger)+" - "+ADOQuery1->FieldByName("Number_in_Lan")->AsString+" - "+ADOQuery1->FieldByName("Department")->AsString+" - "+ADOQuery1->FieldByName("Processor")->AsString+" - "+ADOQuery1->FieldByName("Memory")->AsString+" - "+ADOQuery1->FieldByName("HDD")->AsString+" - "+ADOQuery1->FieldByName("Room")->AsString;
     if (Application->MessageBox(ds.c_str(),"Подтверждение удаления строки из базы данных",MB_YESNO +MB_TOPMOST+ MB_ICONQUESTION)!=IDYES)
     {
         Abort();
     }
     else
 
      if(DBGrid1->SelectedRows->Count > 0)
     {
         ADOQuery1->DisableControls();
         int curItem = ADOQuery1->RecNo;
         ADOQuery1->First();
         while(!ADOQuery1->Eof)
     {
     if(DBGrid1->SelectedRows->CurrentRowSelected)
     {
         ADOQuery1->Delete();
     }
    else
     {
         ADOQuery1->Next();
     }
     }
        DBGrid1->SelectedRows->Clear();
        if(ADOQuery1->RecordCount > 0)
     {
        if(curItem > ADOQuery1->RecordCount)
     {
        ADOQuery1->Last();
     }
    else
    {
        ADOQuery1->RecNo = curItem;
        DBGrid1->SelectedRows->CurrentRowSelected = true;
    }
    }
     ADOQuery1->EnableControls();
    }
Добавлено через 9 минут
Кстати ответ на твой вопрос вот здесь в самом низу

Добавление записи в таблицу
2
4 / 4 / 0
Регистрация: 03.03.2011
Сообщений: 23
10.05.2011, 02:28  [ТС]
Спасибо, работает так =)
C++
1
2
3
ADOTable2->Delete();
ADOTable2->Active=false;
ADOTable2->Active=true;
Добавлено через 12 минут
Немогу разобратся с вот этим запросом на удаление
C++
1
2
3
4
f(MainForm->ADOQuery1->RecordCount !=0)
     {
         AnsiString ds = "Вы деиствительно хотите удалить выбранную строку? \n\n" + IntToStr(ADOQuery1->FieldByName("Invent_Number")->AsInteger)+" - "+ADOQuery1->FieldByName("Number_in_Lan")->AsString+" - "+ADOQuery1->FieldByName("Department")->AsString+" - "+ADOQuery1->FieldByName("Processor")->AsString+" - "+ADOQuery1->FieldByName("Memory")->AsString+" - "+ADOQuery1->FieldByName("HDD")->AsString+" - "+ADOQuery1->FieldByName("Room")->AsString;
     if (Application->MessageBox(ds.c_str(),"Подтверждение удаления строки из базы данных",MB_YESNO +MB_TOPMOST+ MB_ICONQUESTION)!=IDYES)
Выдает: ADOQuery1:cannot perform this operation on a closed dataset
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
10.05.2011, 09:20
А у тебя на форме ADOQuery1 есть?
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
10.05.2011, 10:20
А зачем ему ADOQuery1, если он удаляет запись методами TADOTable ?
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
10.05.2011, 10:28
Цитата Сообщение от L.I.Vladislav Посмотреть сообщение
Выдает: ADOQuery1:cannot perform this operation on a closed dataset
Не чувствуется по ошибке, что он работает с ADOTable
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
10.05.2011, 10:37
Перечитай [5] (первый фрагмент)

Добавлено через 4 минуты
Похоже, что он запутался в "набросанных" компонентах. Отображает, очевидно, через TADOTable, а менять (удалять) хочет через квери. А потом удивляется, что в сетке все без изменений.
Затем сообразил, что удалять можно непосредственно через TADOTable->Delete, но кверик все равно оставил зачем-то, при этом еще пытается определить число записей при том, что этот кверик открыт не был.
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
10.05.2011, 10:42
MsGuns, да ты прав вот поетому я унего и спросил о существовании самого компонента ADOQuery на форме.

Наверно человек бездумно перекопировал код и хочет из него, что-то получить
0
4 / 4 / 0
Регистрация: 03.03.2011
Сообщений: 23
10.05.2011, 13:17  [ТС]
Цитата Сообщение от Sasha Посмотреть сообщение
MsGuns, да ты прав вот поетому я унего и спросил о существовании самого компонента ADOQuery на форме.

Наверно человек бездумно перекопировал код и хочет из него, что-то получить
Квери на форме есть, я через него подключал базу, да код я копирнул, но абсолютно не бездумно, я прописал свои компоненты, формы, названия полей и т.д. Впрочем спасибо и на том. Да и квери у меня на форме для запросов поиска и добавления записи в таблицу.
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
10.05.2011, 14:31
>Да и квери у меня на форме для запросов поиска и добавления записи в таблицу.

Это правильно. Использовать для выборок один компонент, а для внесения изменений - другой - это абсолютно верный и, ИМХО, более надежный и "прозрачный" метод, чем "табличный" (все - через XXTable).
Но !
Зачем Вы вообще используете XXTable ? Почему не заменили его на TADODataSet, более концептуально походящий и, главное, куда более гибкий ?
1
4 / 4 / 0
Регистрация: 03.03.2011
Сообщений: 23
10.05.2011, 14:38  [ТС]
Цитата Сообщение от MsGuns Посмотреть сообщение
>Да и квери у меня на форме для запросов поиска и добавления записи в таблицу.

Это правильно. Использовать для выборок один компонент, а для внесения изменений - другой - это абсолютно верный и, ИМХО, более надежный и "прозрачный" метод, чем "табличный" (все - через XXTable).
Но !
Зачем Вы вообще используете XXTable ? Почему не заменили его на TADODataSet, более концептуально походящий и, главное, куда более гибкий ?
Ну Table был вбит мне в голову преподом, а датасет даже непробовал еще, так что спасибо буду пробовать =)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.05.2011, 14:38
Помогаю со студенческими работами здесь

Удаление выбранной записи SQL
как удалить выбранную запись в таблицу с помощь SQL? тоесть не всю таблицу а я например добавил какие то данные и мне не нужен какой то...

Удаление выбранной в ListBox таблицы из БД
Вывел таблицы в Listbox вот так: Dim cn As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" &...

Связанные таблицы. Отображать во второй DGV данные, которые относятся к выбранной записи в первой
Есть два datagridview. Если в datagridview1 в свойствах указать таблицу из связанной базы, а в datagridview2 связь этой таблицы с другой,...

Удаление записи из таблицы, с проверкой на совпадение с записями из другой таблицы.
День добрый! В общем такая проблема: Мой проект на курсовую работу представляет из себя простую базу данных. Имеется таблица заказчики...

Удаление записи из таблицы
Здравствуйте, делаю удаление записи из таблицы DELETE FROM `app` as a, `response` as r WHERE a.id = '17' and r.id_app = a.id И...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью в конфигурации КА2. Данные берутся из регистра сведений, по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru