C++Builder
  Начало   Форум   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Редактирование после поиска  (Прочитано 896 раз)
TYMON
Участник


Сказали спасибо: +0/-0
Offline

Сообщений: 4


Редактирование после поиска
« : 19 Май 2015, 21:15:26 »

Здравствуйте. Работа с базой MySQL. Делаю такой алгоритм:

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;
 
 
     }
}

2. Пытаемся отредактировать:

Код:
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();
}

3.Открывается форма для редактирования, вводим данные в DBEdit и жмем сохранить.

Код:
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);
}

Так вот не сохраняются данные в режиме поиска. Как сделать правильно?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  




....

Powered by SMF 1.1.21 | SMF © 2025, Simple Machines
Страница сгенерирована за 0.029 секунд. Запросов: 19.