Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Редактирование после поиска в БД

41K
19 мая 2015 года
TYMON
2 / / 09.10.2010
Здравствуйте. Делаю такой алгоритм:

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
24 мая 2015 года
kot_
7.3K / / 20.01.2000
стопятсоттісяч раз говорили уже на форуме - использование TADOTable для редактирования - єто самому себе наступать на грабли.
В данном случае надо проверять - находится ли таблица в режиме редактирования. И собственно в этот режим ее переводить непосредственно после всех проверок.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог