Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > mysql+mydac+ehlib обновление записей в гриде


Автор: maloicds 21.9.2011, 21:11
Используется MySQL Server, MyDAC и DbGridEh для отображения информации. Все манипуляции с данными производятся через MyQuery с помощью запросов. Причём datasource.dataset=myquery. Как сделать чтоб при добавлении, удалении, изменении данных в гриде информация отображалась сразу. (как будто мы изменения сделали через dbnavigator). MyQuery.RefreshRecord не помогает, а обновлять всю таблицу долго.

Автор: superVad 22.9.2011, 11:24
Используй не query, а dataset. И добавляй записи через него.
С MyDAC  не работал, но не думаю, что сильно отличается от других компонентов.
Заполняешь поля запросов на добавление, изменение и удаление в dataset. Потом dataset.append (или insert), заполняешь его поля и post. Возможно надо еще транзакцию стартовать и закомитить...

П.С. Посмотрел я на эти компоненты. Вроде нету там ДатаСета. Есть TMyTable - попробуй может его. Хотя в документации написано - Automatic data updating with TMyQuery, TMyTable, and TMyStoredProc components. Может там какие то примеры есть еще?

Автор: maloicds 24.9.2011, 21:15
Попробовал через MyDataSource1.DataSet.AppendRecord всё ок, попробовал через myquery1.AppendRecord тоже всё работает. так что же лучше?

Автор: superVad 28.9.2011, 16:32
Цитата(maloicds @  24.9.2011,  20:15 Найти цитируемый пост)
Попробовал через MyDataSource1.DataSet.AppendRecord всё ок, попробовал через myquery1.AppendRecord тоже всё работает. так что же лучше?

Это одно и тоже - если в MyDataSource1.DataSet установлене myquery1. Второй вариант как то понятнее, если все на одной форме.

Автор: maloicds 28.9.2011, 18:28
ОК, спасибо!

Автор: chikistbuch 23.10.2011, 00:00
Я вот не пойму, maloicds, ты что купил MyDAC или он всё таки существует халявный

Автор: maloicds 23.10.2011, 09:33
В нете много крякнутых версий MyDAC

Автор: maloicds 27.10.2011, 17:35
Продолжаю тему по поводу обновления данных. Всё остальное как и в предыдущих вопросах по поводу обновления.
Есть две связанные таблицы. В грид данные получаю через запрос вида 
Код

'SELECT * FROM table1, table2 WHERE table1.запись = table2.значение'
  При таком запросе результируещее поле отображает значение поля второй таблице в грид. При добавлении данных через myquery1.AppendRecord или MyDataSource1.DataSet.AppendRecord данные записываются в базу данных, а результирующее поле остаётся пустым (в dbgrid) хотя в нем есть значение. Приходится обновлять весть query. Может есть какое нить свойство у грида или query или другой метод добавления и отображения данных?? 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)