Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 31.03.2011, 02:30   #1
ArcaN0id
Пользователь
 
Регистрация: 03.06.2009
Сообщений: 62
По умолчанию удаление из базы через sql

у меня есть 3 edit'a и БД accessa, подключенная через ADO. Как удалить из базы строку содержащую в столбцах edit1, edit2, edit3, а если какой то из editов не совпадает, то вывести ошибку?
ArcaN0id вне форума
Старый 31.03.2011, 08:47   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

удалять надо через SQL (DDL) команду: "DELETE FROM Таблица where условия отбора"

проверять наличие через SQL команду "SELECT COUNT(*) FROM Таблица where условия отбора"


какой вопрос, такой и ответ...
Serge_Bliznykov вне форума
Старый 31.03.2011, 14:07   #3
ArcaN0id
Пользователь
 
Регистрация: 03.06.2009
Сообщений: 62
По умолчанию

не, это я знаю, я не врубаюсь как sql запрос должен выглядеть..
попробую еще раз объяснить

есть база, в ней таблица users. В users столбцы: imya,familiya,gruppa.
заполнена: Вася Иванов 17892, Ваня Петров 23141 и т.д

есть edit1, edit2,edit3. В них я ввожу Вася Иванов 17892.

И как написать запрос, чтобы удалился именно Вася Иванов 17892?
ArcaN0id вне форума
Старый 31.03.2011, 14:20   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
DELETE FROM users WHERE imya='Вася' AND familiya='Иванов' AND gruppa=17892
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума
Старый 31.03.2011, 14:26   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
И как написать запрос, чтобы удалился именно Вася Иванов 17892?
например, так:
Код:
ADOQquery1.Close;
ADOQquery1.SQL.clear;
ADOQquery1.SQL.Add('Select count(*) as CntRec from users where ');
ADOQquery1.SQL.Add(' imya = '+QuotedStr(edit1.Text)+' and ');
ADOQquery1.SQL.Add(' familiya = '+QuotedStr(edit2.Text)+' and ');
ADOQquery1.SQL.Add(' gruppa = '+QuotedStr(edit3.Text));
ADOQquery1.Open;
if ADOQquery1.FieldByName('CntRec').AsInteger = 0 then
   ShowMessage('Вааще нет таких записей!');
if ADOQquery1.FieldByName('CntRec').AsInteger > 1 then
   ShowMessage('Таких записей в таблице аж '+IntToStr(ADOQquery1.FieldByName('CntRec').AsInteger)+' штук!');
if ADOQquery1.FieldByName('CntRec').AsInteger = 1 then 
  {записей в таблице строго одна, удаляем} begin
  ADOQquery1.Close;
  ADOQquery1.SQL.clear;
  ADOQquery1.SQL.Add('Delete from users where ');
  ADOQquery1.SQL.Add(' imya = '+QuotedStr(edit1.Text)+' and ');
  ADOQquery1.SQL.Add(' familiya = '+QuotedStr(edit2.Text)+' and ');
  ADOQquery1.SQL.Add(' gruppa = '+QuotedStr(edit3.Text));
  ADOQquery1.ExecSQL;
end;
дополнительные вопросы/проверки и прочая расставите по вкусу самостоятельно!


важно! если поле gruppa числовое - тогда надо убрать QuotedStr при добавлении edit3.Text
примерно так: ADOQquery1.SQL.Add(' gruppa = '+edit3.Text);
Serge_Bliznykov вне форума
Старый 31.03.2011, 15:40   #6
ArcaN0id
Пользователь
 
Регистрация: 03.06.2009
Сообщений: 62
По умолчанию

Спасибо большое! Все заработало!))))
ArcaN0id вне форума
Старый 31.03.2011, 18:57   #7
ArcaN0id
Пользователь
 
Регистрация: 03.06.2009
Сообщений: 62
По умолчанию

Еще вопрос. А как выбрать нужную запись (1 ячейку) и вывести в edit?
ArcaN0id вне форума
Старый 31.03.2011, 20:21   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

одна тема - один вопрос.

ЗАКРЫТО.
Serge_Bliznykov вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление данных из таблицы через SQL запрос Kity19 БД в Delphi 2 19.01.2011 23:35
Поблема с удаление из базы Ketty_byyy БД в Delphi 2 23.05.2010 08:49
Удаление строки с помощью SQL запроса (Query1.SQL.ADD('Delete....')) Schutze Помощь студентам 6 29.11.2009 22:15
Создание новых таблиц в MS SQL SERVERE через SQL запрос в Delphi S_Yevgeniy Помощь студентам 1 27.10.2009 06:26
Добавление Удаление Редактирование через SQL beginner БД в Delphi 4 29.05.2007 17:52