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

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

09.05.2011, 23:52. Показов 10492. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru