Как изменить значения базы данных mysql через dbgrid?

Эй, ребята, доброе утро,

я получил компоненты DBGrid и UniDac. Я использую всплывающее меню и выбираю строку. Я заполняю через событие onclick из всплывающего меню новую форму своими данными в моем TEdit.

Теперь проблема в том, что я хочу отредактировать свои данные, которые я выбрал из dbgrid.

Этот код работает до тех пор, пока dbgrid не будет обновлен, а затем старые значения снова вернутся в мою dbgrid. Как я могу изменить его для таблицы mysql, а не только для dbgrid?

Мой код:

   FQuery.Edit;
   FQuery.FieldByName('CfgUID').AsString := Edit4.Text;
   FQuery.FieldByName('CfgMod').AsString := Edit1.Text;
   FQuery.Post;

person Hidden    schedule 23.04.2013    source источник
comment
Вы совершили транзакцию после публикации? у вашего запроса есть уникальный индекс для строк? что вам отвечают на официальном форуме? forums.devart.com/viewforum.php?f=7   -  person Arioch 'The    schedule 23.04.2013
comment
Я не фиксировал... И у меня есть уникальный индекс для строк. Какова команда для фиксации?   -  person Hidden    schedule 23.04.2013
comment
у меня нет UniDAC, но я прочитал их справку о транзакциях. Транзакции — это основные понятия SQL, и вы должны прочитать хотя бы отрывок из Википедии о них. Тогда, если ваша таблица имеет уникальный индекс, это не обязательно означает, что он есть и у вашего запроса, и что UniDAC знает об этом. У DevArt очень отзывчивая служба поддержки, так что просто спросите на форумах, причин может быть много, и они знают в деталях, как это определить.   -  person Arioch 'The    schedule 23.04.2013


Ответы (1)


Решение состояло в том, чтобы отключить CachedUpdates или вызвать ApplyUpdates после Post.

person Hidden    schedule 23.04.2013