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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.06.2009, 01:36   #1
Droid
Форумчанин
 
Аватар для Droid
 
Регистрация: 24.04.2008
Сообщений: 440
По умолчанию Помогите решить проблему по удалению записи из DBGrid.

Не могу подобрать нужные параметры всегда ошибка вылазиет подскажите, кто умеет... или поправте.
Код HTML:
DM.ADOQ_PAC.Close;
DM.ADOQ_PAC.SQL.Clear;
DM.ADOQ_PAC.SQL.Add('DELETE FROM pacient WHERE id_pacienta=:D;');
DM.ADOQ_PAC.Parameters.FindParam('D').Value:=DM.ADOQ_PACid_pacienta.DataSet.RecNo;
DM.ADOQ_PAC.ExecSQL;

//обновление таблицы
DM.ADOQ_PAC.Close;
DM.ADOQ_PAC.SQL.Clear;
DM.ADOQ_PAC.SQL.Add('SELECT * FROM pacient');
DM.ADOQ_PAC.Open
;
1 старый программист, лучше новых 2-х
Droid вне форума Ответить с цитированием
Старый 29.06.2009, 01:45   #2
Evgeniy26
Форумчанин
 
Аватар для Evgeniy26
 
Регистрация: 29.05.2009
Сообщений: 384
По умолчанию

Попробуй:
DM.ADOQ_PAC.SQL.Add('DELETE FROM pacient WHERE id_pacienta=:D');
Evgeniy26 вне форума Ответить с цитированием
Старый 30.06.2009, 08:42   #3
Droid
Форумчанин
 
Аватар для Droid
 
Регистрация: 24.04.2008
Сообщений: 440
По умолчанию

Цитата:
Сообщение от Evgeniy26 Посмотреть сообщение
Попробуй:
DM.ADOQ_PAC.SQL.Add('DELETE FROM pacient WHERE id_pacienta=:D');
а разница между моим только в ; ? )))) не получается
1 старый программист, лучше новых 2-х
Droid вне форума Ответить с цитированием
Старый 30.06.2009, 08:49   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну и на каком языке ошибка?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.06.2009, 09:32   #5
Droid
Форумчанин
 
Аватар для Droid
 
Регистрация: 24.04.2008
Сообщений: 440
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ну и на каком языке ошибка?
Раз в теме БД и Delphi, значит ошибка в этих языках. Ошибка такая Безымянный.jpg
1 старый программист, лучше новых 2-х
Droid вне форума Ответить с цитированием
Старый 30.06.2009, 09:49   #6
Droid
Форумчанин
 
Аватар для Droid
 
Регистрация: 24.04.2008
Сообщений: 440
По умолчанию

Никто не подскажет мне чтоль так и буду мучиться ...
1 старый программист, лучше новых 2-х
Droid вне форума Ответить с цитированием
Старый 30.06.2009, 09:57   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну тогда не закрывай ADOQ_PAC перед выполнением запроса на удаление.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.06.2009, 10:08   #8
Droid
Форумчанин
 
Аватар для Droid
 
Регистрация: 24.04.2008
Сообщений: 440
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ну тогда не закрывай ADOQ_PAC перед выполнением запроса на удаление.
Вы не поверите но ошибка таже...

Я думаю в коде чет у меня напутано.
1 старый программист, лучше новых 2-х
Droid вне форума Ответить с цитированием
Старый 30.06.2009, 11:02   #9
SlavaSH
Форумчанин
 
Регистрация: 12.08.2008
Сообщений: 174
По умолчанию

Цитата:
Сообщение от Droid Посмотреть сообщение
Не могу подобрать нужные параметры всегда ошибка вылазиет подскажите, кто умеет... или поправте.
Код HTML:
DM.ADOQ_PAC.Close;
DM.ADOQ_PAC.SQL.Clear;
DM.ADOQ_PAC.SQL.Add('DELETE FROM pacient WHERE id_pacienta=:D;');
DM.ADOQ_PAC.Parameters.FindParam('D').Value:=DM.ADOQ_PACid_pacienta.DataSet.RecNo;
DM.ADOQ_PAC.ExecSQL;

//обновление таблицы
DM.ADOQ_PAC.Close;
DM.ADOQ_PAC.SQL.Clear;
DM.ADOQ_PAC.SQL.Add('SELECT * FROM pacient');
DM.ADOQ_PAC.Open
;
ну ты, братан, даёшь
нельзя же один и том же query использовать для отображения данных и при помощи него же удалять данные.

Для этого есть спец. компонент TADOCommand.
Нужно добавить его. Должно получиться что-то типа:
Код:
DM.ADOCommand.CommandText:='DELETE FROM pacient WHERE id_pacienta=:D';
DM.ADOCommand.Parameters.ParamByName('D').Value:=DM.ADOQ_PACid_pacienta.Value;
DM.ADOCommand.Execute;
//обновление таблицы

Код:
DM.ADOQ_PAC.Close;
DM.ADOQ_PAC.Open;

Последний раз редактировалось SlavaSH; 30.06.2009 в 11:05.
SlavaSH вне форума Ответить с цитированием
Старый 30.06.2009, 11:09   #10
Droid
Форумчанин
 
Аватар для Droid
 
Регистрация: 24.04.2008
Сообщений: 440
По умолчанию

Цитата:
Сообщение от SlavaSH Посмотреть сообщение
ну ты, братан, даёшь
нельзя же один и том же query использовать для отображения данных и при помощи него же удалять данные.

Для этого есть спец. компонент TADOCommand.
Нужно добавить его. Должно получиться что-то типа:
Код:
DM.ADOCommand.CommandText:='DELETE FROM pacient WHERE id_pacienta=:D';
DM.ADOCommand.Parameters.ParamByName('D').Value:=DM.ADOQ_PACid_pacienta.Value;
DM.ADOCommand.Execute;
//обновление таблицы

Код:
DM.ADOQ_PAC.Close;
DM.ADOQ_PAC.Open;
Я же не знал Спасибо получилось )))) А добавлять тоже через него или редактировать ? Потому что добавление у меня через ADOQuery - работает.
1 старый программист, лучше новых 2-х
Droid вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ПОМОГИТЕ РЕШИТЬ ПРОБЛЕМУ !!!!!!!!!!!! ЛиЛу Помощь студентам 5 29.12.2008 15:36
Помогите решить проблему nismo Microsoft Office Excel 7 12.09.2008 08:59
помогите решить проблему 1234 Общие вопросы Delphi 2 04.07.2008 11:52
помогите решить проблему ... alexey7 Microsoft Office Excel 2 16.10.2007 13:25