
| Если это ваш первый визит, рекомендуем почитать справку по форуму. Для размещения своих сообщений необходимо зарегистрироваться. Для просмотра сообщений выберите раздел. |
![]() |
||
Помогите из БД с помощью SQL запроса удалить выделенную строку в Visual C++
|
||
| Философия, технологии, алгоритмы! |
![]() |
|
|
Опции темы |
|
|
#1 |
|
Форумец
Сообщений: 2,396
Регистрация: 14.05.2002
Возраст: 44
|
Помогите из БД с помощью SQL запроса удалить выделенную строку в Visual С ++.
У меня есть таблица STUDENT. Из нее требуется удалить запись, на которой стоит курсор. При чем требуется это сделать с помощью SQL запроса. Help!!! Я пробовал так ADOQuery1->Active=false; ADOQuery1->SQL->Clear(); ADOQuery1->SQL->Add("delete from STUDENT ??? Where ?????"); ADOQuery1->ExecSQL(); ???-не знаю что написать. Может есть что-то для работы с курсором?HELP!!!!! Серега |
|
|
|
|
#2 |
|
Пью пиво
Сообщений: 238
Регистрация: 14.09.2005
Возраст: 58
|
Сначала получи идентификатор строки в которой стоит курсор. В нормальной таблице обычно существует такой.
В билдере я делал так: AnsiString Type=ADOQuery1->FieldByName("PersonID")->AsString; а уже потом делай delete from student where Type=PersonID |
|
|
|
|
#3 |
|
Форумец
Сообщений: 2,396
Регистрация: 14.05.2002
Возраст: 44
|
Вот мой обработчик на кнопку DEL
void __fastcall TForm1::Button4Click(TObject *Sender) { AnsiString Type=ADOQuery1->FieldByName("ID")->AsString; ADOQuery1->Active=false; ADOQuery1->SQL->Clear(); ADOQuery1->SQL->Add("delete from STUDENT Where Type=ID"); ADOQuery1->ExecSQL(); } Появляется ошибка: Параметр TYPE не имеет значения по умолчанию! Что дальше? |
|
|
|
|
#4 |
|
Бывалый форумец
Сообщений: 652
Регистрация: 05.08.2005
|
тогда уж
AnsiString Type=ADOQuery1->FieldByName("ID")->AsString; [...] ADOQuery1->SQL->Add("delete from STUDENT Where Type=" + Type); [...] А вообще такие вещи делают обычно с параметрическими запросами. Помедитируй над доками, я сама уже не помню нужный раздел. |
|
|
|
|
#5 | |
|
Форумец
Сообщений: 1,986
Регистрация: 27.08.2003
|
Цитата:
ADOQuery1->SQL->Add("delete from STUDENT Where ID = '"'" + Type + "'"'"); Только это не VC++, это CBuilder. И, с другой стороны, проще удалить без всякого SQL, а напрямую через датасет, раз курсор все равно на записи стоит. |
|
|
|