Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Within_t
33 / 20 / 11
Регистрация: 20.10.2013
Сообщений: 487
1

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

23.09.2014, 12:39. Просмотров 691. Ответов 7
Метки нет (Все метки)

Не могу удалить запись)))

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
void __fastcall TForm11::Button78Click(TObject *Sender)
{
      if (MessageBox(0,"Вы действительно хотите\nудалить тему?","Удаление...",
      MB_YESNO | MB_ICONQUESTION) == IDYES)
      {
         Edit25->Text=ADOQuery1rezh->Value; //заношу в Edit значение ID записи
         AnsiString a=Edit25->Text;
         ADOQuery1->Delete(); //удаляю основную запись
         //организовываю цикл
         ADOQuery2->First();
         while (!ADOQuery2->Eof)
            {
                //если значение ID (в Edit) совпадает со значением во второй таблице, то...
                if (StrToInt(a)==ADOQuery2rezh->Value)
                {
                   //...удаляем
                   ADOQuery2->Delete();
                }
                else
                {
                   // :) это я с одной из тем на форуме скатал
                   ADOQuery2->Next();
                } // и все равно вылетает ошибка
            }
      }
}
Удаление записей из таблицы по ID


Не знаю, что и делать уже все методы перепробовал))))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.09.2014, 12:39
Ответы с готовыми решениями:

Удаление записей в БД
Хай всем программерам, есть такая проблемка, мне нужно сделать удаление записи...

Удаление повторных записей
Есть программа, не очень правильно работает. Добавляются данные(в список) при...

Удаление записей в цикле
Не понимаю почему, но удаляется только одна запись, а должно две. Проверяю с...

Удаление и сохранение записей.
Доброго времени суток. И так есть функция которая должна реализовать удаление...

Сортировка БД и удаление записей
#include <vcl.h> #pragma hdrstop #include "Unit1.h" #include "Unit5.h"...

7
quwy
Native x86
3338 / 2184 / 650
Регистрация: 13.02.2013
Сообщений: 7,239
23.09.2014, 12:46 2
Цитата Сообщение от Within_t Посмотреть сообщение
Не знаю, что и делать уже все методы перепробовал))))
Попробуйте самый напрашивающийся метод: удаление записи SQL-запросом, а не методом Delete компонента TADOQuery. Особенно для таблиц без первичного ключа.
0
Within_t
33 / 20 / 11
Регистрация: 20.10.2013
Сообщений: 487
23.09.2014, 12:50  [ТС] 3
Через SQL запрос вылетает ошибка на 3 строке:
C++
1
2
3
4
5
6
7
8
   ADOQuery1->Close();
   ADOQuery1->SQL->Clear();
   ADOQuery1->SQL->Add("DELETE FROM Tema WHERE RegionName = :Ptema");
   ADOQuery1->Parameters->ParamByName("Ptema")->Value=DBGrid1->SelectedField->AsString;
   ADOQuery1->ExecSQL();
   ADOQuery1->Close();
   ADOQuery1->Open();
   DBGrid1->Refresh();
0
DeadHipo
85 / 85 / 33
Регистрация: 21.09.2013
Сообщений: 339
23.09.2014, 12:58 4
Within_t, а ты параметр добавил?
0
quwy
Native x86
3338 / 2184 / 650
Регистрация: 13.02.2013
Сообщений: 7,239
23.09.2014, 13:10 5
Цитата Сообщение от Within_t Посмотреть сообщение
Через SQL запрос вылетает ошибка на 3 строке:
Текст ошибки -- военная тайна?
И что это такое?
Delphi
1
DBGrid1->SelectedField->AsString;
Прекратите, наконец, обращаться к гриду за данными, не для того он. Данные лежат в связанном с гридом датасете, к нему и обращайтесь.

Цитата Сообщение от DeadHipo Посмотреть сообщение
а ты параметр добавил?
Обычно TxxxQuery.ParamCheck = true
0
Sasha
4923 / 2387 / 530
Регистрация: 05.06.2008
Сообщений: 7,477
Записей в блоге: 3
23.09.2014, 13:45 6
C++
1
2
3
4
5
6
7
8
9
   ADOQuery1->Close();
   ADOQuery1->SQL->Clear();
   ADOQuery1->SQL->Add("DELETE FROM Tema WHERE RegionName = :Ptema");
   ADOQuery1->Parameters->ParamByName("Ptema")->Value=ADOQuery1->FieldByName("id")->AsInteger;
   ADOQuery1->ExecSQL();
   ADOQuery1->Close();
   ADOQuery1->SQL->Clear();
   ADOQuery1->SQL->Add("Select *FROM Tema");
   ADOQuery1->Open();
1
Within_t
33 / 20 / 11
Регистрация: 20.10.2013
Сообщений: 487
23.09.2014, 15:07  [ТС] 7
Sasha,
Удаление записей из таблицы по ID

у меня в таблице только 3 поля:
rezh - счетчик
tema - текстовый
put - текстовый
0
Within_t
33 / 20 / 11
Регистрация: 20.10.2013
Сообщений: 487
23.09.2014, 15:55  [ТС] 8
Нашел ошибки в своей программе))), он компилирует, но все равно не удаляет

Добавлено через 17 минут
Все реализовал:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void __fastcall TForm3::Button7Click(TObject *Sender)
{
            Edit1->Text=ADOQuery1->FieldByName("tema")->AsString;
            ADOQuery1->Close();
            ADOQuery1->SQL->Clear();
            ADOQuery1->SQL->Add("DELETE FROM Tema WHERE tema = :Ptema");
            ADOQuery1->Parameters->ParamByName("Ptema")->Value=Edit1->Text;
            ADOQuery1->ExecSQL();
            ADOQuery1->SQL->Clear();
            ADOQuery1->SQL->Add("Select * FROM Tema");
            ADOQuery1->Open();
            ADOQuery2->Close();
            ADOQuery2->Open();
            DBGrid1->Columns->Items[0]->Visible=false;
            DBGrid1->Columns->Items[2]->Visible=false;
}
0
23.09.2014, 15:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.09.2014, 15:55

Удаление записей в AdoTable
Всем здравствуйте. Есть привязанная БД ACESS через AdoConnection + AdoTable....

Удаление и добавление записей в таблице
У меня имеется 3 таблицы: читатели, книги, выданые книги. мне надо чтобы при...

Удаление записей через DBGrid
Здраствуйте ! Расскажите пожалуйста как программно удалить выделенные записи в...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru