Редактирование после поиска в БД
1. Нашли данные по нажатию:
Код:
void __fastcall Tfrm_category::Button_poiskClick(TObject *Sender)
{
String poisk_cat=" ";
DataSource_category->DataSet=ADOTable_category;
//задаем условие для поля "nazvanie"
if (!Edit_cat->Text.IsEmpty())
{
if (poisk_cat!=" ")
{
poisk_cat=poisk_cat+"AND category LIKE '%"+Edit_cat->Text+"%' ";
}
else
{
poisk_cat=poisk_cat+"category LIKE '%"+Edit_cat->Text+"%' ";
}
}
if (poisk_cat!=" ")
{
//формируем текст запроса
ADOQuery_category->Active=false;
ADOQuery_category->SQL->Clear();
ADOQuery_category->SQL->Add("select category.* from acz.category where "+poisk_cat);
//активируем запрос (отбираем данные)
ADOQuery_category->Active=true;
//соединяем запрос с сеткой (для отображения найденных данных)
DataSource_category->DataSet=ADOQuery_category;
ADOTable_category->Active=false;
ADOTable_category->Active=true;
Button_dobavit->Enabled=false;
DBGrid_category->ReadOnly=true;
DBGrid_category->Columns->Items[0]->Visible=false;
DBGrid_category->Columns->Items[1]->Title->Caption="Категория";
DBGrid_category->Columns->Items[1]->Alignment=taCenter;
DBGrid_category->Columns->Items[1]->Width=484;
}
}
{
String poisk_cat=" ";
DataSource_category->DataSet=ADOTable_category;
//задаем условие для поля "nazvanie"
if (!Edit_cat->Text.IsEmpty())
{
if (poisk_cat!=" ")
{
poisk_cat=poisk_cat+"AND category LIKE '%"+Edit_cat->Text+"%' ";
}
else
{
poisk_cat=poisk_cat+"category LIKE '%"+Edit_cat->Text+"%' ";
}
}
if (poisk_cat!=" ")
{
//формируем текст запроса
ADOQuery_category->Active=false;
ADOQuery_category->SQL->Clear();
ADOQuery_category->SQL->Add("select category.* from acz.category where "+poisk_cat);
//активируем запрос (отбираем данные)
ADOQuery_category->Active=true;
//соединяем запрос с сеткой (для отображения найденных данных)
DataSource_category->DataSet=ADOQuery_category;
ADOTable_category->Active=false;
ADOTable_category->Active=true;
Button_dobavit->Enabled=false;
DBGrid_category->ReadOnly=true;
DBGrid_category->Columns->Items[0]->Visible=false;
DBGrid_category->Columns->Items[1]->Title->Caption="Категория";
DBGrid_category->Columns->Items[1]->Alignment=taCenter;
DBGrid_category->Columns->Items[1]->Width=484;
}
}
Код:
void __fastcall Tfrm_category::Button_izmenitClick(TObject *Sender)
{
//редактирование данных
ADOTable_category->Edit();
frm_dobavlenie_category = new Tfrm_dobavlenie_category(Application);
frm_dobavlenie_category->ShowModal();
frm_dobavlenie_category->Repaint();
}
{
//редактирование данных
ADOTable_category->Edit();
frm_dobavlenie_category = new Tfrm_dobavlenie_category(Application);
frm_dobavlenie_category->ShowModal();
frm_dobavlenie_category->Repaint();
}
Код:
void __fastcall Tfrm_dobavlenie_category::Button_sohrClick(TObject *Sender)
{
if (DBEdit1->Text.IsEmpty())
{
Application->MessageBoxW((const wchar_t*) L"Поле не может быть пустым!! Введите пожалуйста данные ", (const wchar_t*) L"Ошибка ввода!",MB_OK+MB_ICONSTOP);
}
//если все заполнены
else
{
//сохраняем запись
frm_category->ADOTable_category->Post();
//закрываем страничную форму
frm_dobavlenie_category->Close();
}
frm_category->Button_poiskClick(Sender);
}
{
if (DBEdit1->Text.IsEmpty())
{
Application->MessageBoxW((const wchar_t*) L"Поле не может быть пустым!! Введите пожалуйста данные ", (const wchar_t*) L"Ошибка ввода!",MB_OK+MB_ICONSTOP);
}
//если все заполнены
else
{
//сохраняем запись
frm_category->ADOTable_category->Post();
//закрываем страничную форму
frm_dobavlenie_category->Close();
}
frm_category->Button_poiskClick(Sender);
}
В данном случае надо проверять - находится ли таблица в режиме редактирования. И собственно в этот режим ее переводить непосредственно после всех проверок.