Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.03.07;
Скачать: [xml.tar.bz2];




Вниз

Как удалить запись на которой установлен курсор в DBGrid? 


DmitryPV   (2002-02-08 15:54) [0]

Извините за чайниковский вопрос, но я только начал работать с БД из под Delphi. Пишу тут маленькую программку для работы с таблицами MS Access"97. Работаю через BDE (надо-же с чего-то начинать!): TDatabase->TQuery->TDataSource->TDBGrid. Добавление и поиск записи у меня получается, но как удалить запись, на которой установлен курсор в TDBGrid, я пока не понимаю. Нет, составить обычный SQL-запрос на удаление я могу, но какие параметры туда вставлять в данном случае. Неплохо было-бы посмотреть примерчик, но буду рад любым рекомендациям.



BJValentine   (2002-02-08 16:02) [1]

Table1.delete;



Romul   (2002-02-08 16:09) [2]

Ну к примеру если сделать удаление на даблклик, то так:
Query.SQL.ADD("delete * from your_table where field="+
DBGrid1.Fields[0].AsString);



DmitryPV   (2002-02-08 16:33) [3]

Благодарю за советы! Но имеются уточнения:
1. Как сделать так,что-бы при установке курсора выделялась сразу вся запись, как это сделано в Access?
2. На форме имеется кнопка "Удалить запись". При нажатии на нее должна удалиться из базы выделенная запись. Какой SQL-запрос будет в данном случае?



Romul   (2002-02-08 16:50) [4]

Что касается курсора в DBGrid"e, то это в настройках самой сетки есть, посмотри Options у грида, там RowSelect в True MultiSelect в False, тогда если у тебя какая-то строка в гриде выделена, то это равноценно тому, что курсор в самом DataSet"e стоит на этой строке и ты можешь что угодно делать, например как ты хочешь нажать на кнопку и удалить запись. Добавляещь к кнопке событие OnClick, а потом в этой процедуре пишешь
try
if Query1.Active then Close;
Query1.SQL.Clear; //типа очищаем свойство в котором текст запроса хранится

Query1.Sql.Add("delete * from your_table where field="+
DBGrid1.Fields[0].AsString); //здесь подставляя первый столбец DBGrid"a выделенной курсором строки и выполняя эту команду ты удаляешь строку в таблице. Свойство Fields нумеруется с нуля.
Query1.ExecSQL;//Метод специально предназначен для Delete или Insert, т.е. он не возвращает результатов
except
on E:Exception do
ShowMessage(E.Message);
end;



DmitryPV   (2002-02-08 16:57) [5]

Romul спасибо!




Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.03.07;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.014 c
14-19332          dANILKA               2002-01-23 01:26  2002.03.07  
Завершени_Я_ сенсов и работы WinXP


3-19096           Елена                 2002-02-06 13:41  2002.03.07  
Ошибка EDBEngineError


1-19233           Geks                  2002-02-19 12:31  2002.03.07  
Как правильно передать строку в DLL или правильно ее обработать?


1-19159           Leonon                2002-02-21 12:40  2002.03.07  
Как расположить боксы в нужном порядке?


7-19362           Игорь-Х               2001-11-16 21:59  2002.03.07  
Помогите скомпилировать *.rc файл в *.res ?