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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.02.2012, 20:39   #1
SmileyN
Новичок
Джуниор
 
Регистрация: 26.02.2012
Сообщений: 2
По умолчанию Запрос на удаление

Добрый вечер! Такая вот проблемка.
При нажатии на кнопку должно происходить удаление строки по SQL-запросу, а также обновление данных в самой таблице DBGrid (для того, чтобы user видел, что он собственно удалил эту запись). Но почему-то обновление данных в таблице (DBGrid) происходит только после второго нажатия кнопки, хотя это событие должно происходить непосредственно после первого нажатия вместе с удалением из аксессовской базы. Я уже и состояние запроса activ/false, и обновление датасурсов вместе датасетами прописала. Бесполезно. Не знаю, что ещё можно сделать.

Код:
procedure TForm1.Button8Click(Sender: TObject);
begin
  Adoquery3.Close;
  Adoquery3.SQL.Clear;
  Adoquery3.SQL.Add('DELETE * FROM Project WHERE NameProj=:a');
  Adoquery3.Parameters.ParamByName('a').Value:= RedProj.Fields[0].AsString;
  Adoquery3.ExecSQL;
  Adoquery3.Close;

  AdoQuery1.Active:= false;
  AdoQuery1.Active:= true;
  datasource6.DataSet:= nil;
  datasource6.DataSet:= AdoQuery1;
  dbgrid2.DataSource:= nil;
  dbgrid2.DataSource:= datasource6;
end;

Последний раз редактировалось Stilet; 26.02.2012 в 21:05.
SmileyN вне форума Ответить с цитированием
Старый 26.02.2012, 21:07   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
datasource6.DataSet:= nil;
datasource6.DataSet:= AdoQuery1;
dbgrid2.DataSource:= nil;
dbgrid2.DataSource:= datasource6;
Зачем перецеп делаешь?
Кстати, разве метод reopen не работает?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.02.2012, 21:10   #3
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Код:
  Adoquery3.SQL.Add('DELETE * FROM Project WHERE NameProj=:a');
  Adoquery3.Parameters.ParamByName('a').Value:= RedProj.Fields[0].AsString;
А может сначала нужно указать параметр, а уже потом делать запрос?
То есть
Код:
Adoquery3.Parameters.ParamByName('a').Value:= RedProj.Fields[0].AsString;
Adoquery3.SQL.Add('DELETE * FROM Project WHERE NameProj=:a');
_SERGEYX_ вне форума Ответить с цитированием
Старый 26.02.2012, 21:15   #4
SmileyN
Новичок
Джуниор
 
Регистрация: 26.02.2012
Сообщений: 2
По умолчанию

Даже запрос заново писала (там и close и open). Refresh тоже не помогает.

Цитата:
Сообщение от _SERGEYX_ Посмотреть сообщение
Код:
  Adoquery3.SQL.Add('DELETE * FROM Project WHERE NameProj=:a');
  Adoquery3.Parameters.ParamByName('a').Value:= RedProj.Fields[0].AsString;
А может сначала нужно указать параметр, а уже потом делать запрос?
То есть
Код:
Adoquery3.Parameters.ParamByName('a').Value:= RedProj.Fields[0].AsString;
Adoquery3.SQL.Add('DELETE * FROM Project WHERE NameProj=:a');
Неа, так не прокатит

Последний раз редактировалось Stilet; 26.02.2012 в 21:56.
SmileyN вне форума Ответить с цитированием
Старый 26.02.2012, 22:02   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Значит нужно смотреть код.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.02.2012, 22:27   #6
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Там сначала нужно определиться: действительно ли данные в гриде обновляются только после второго клика или удаление самой записи происходит только после второго клика.
Что-то мне кажется, что при первом клике
RedProj.Fields[0].AsString равно либо NULL, либо пустой строке.
_SERGEYX_ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрос на удаление NIKOLASCS SQL, базы данных 9 25.08.2011 15:45
Запрос на добавление\удаление Stelix Microsoft Office Access 0 24.12.2010 12:41
Запрос на удаление JustinDEbass Microsoft Office Access 7 11.04.2010 08:15
Запрос на удаление с условием Dimok82 SQL, базы данных 1 13.03.2009 18:19
запрос на удаление ГОСЕАН Помощь студентам 9 13.08.2008 10:03