Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2010, 10:41   #1
p.majorov
 
Аватар для p.majorov
 
Регистрация: 15.11.2010
Сообщений: 3
Вопрос Проблема с редактированием записи таблицы.

Доброго времени суток всем!

В общем начну по порядку:
СУБД InterBase, БД из 8 таблиц, в каждой по одному полю blob типа.

Для работы с базой использую компоненты dbExpress:
SQLConnection для связи с базой и компоненты SimpleDataSet для работы с таблицами.

Добавление записей и удаление происходит нормально. А вот с редактированием проблема, а именно:
При редактировании любой записи кроме последней, редактирование происходит как положено, а вот при отправке изменений последней записи таблицы на сервер вылетает ошибка "SimpleDataSet: Must apply updates before refreshing data" - не проходит метод ApplyUpdates().

Кто сталкивался подскажите в чем проблема.
Век живи, век учись...
p.majorov вне форума Ответить с цитированием
Старый 15.11.2010, 11:25   #2
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Ну, он же тебе пишет
Must apply updates before refreshing data - необходимо принять изменения перед обновлением данных. Кусок кода в студию...
_SERGEYX_ вне форума Ответить с цитированием
Старый 15.11.2010, 12:36   #3
p.majorov
 
Аватар для p.majorov
 
Регистрация: 15.11.2010
Сообщений: 3
По умолчанию

Код:
DataModule1.sidsAdmin.Edit;    //открываем запись на редактирование
  ... ...
DataModule1.sidsAdmin.FieldByName('data_sozd').AsDateTime:=StrToDate(Edit_date_admin.Text);
   DataModule1.sidsAdmin.FieldByName('nomer_doc').AsInteger:=StrToInt(Edit_No_admin.Text);
  ... ...
 try   //создаем поток для blob
     stream_db:=DataModule1.sidsAdmin.CreateBlobStream     (DataModule1.sidsAdmin.FieldByName('PICTURE'),bmWrite);
      file_stream:=TFileStream.Create(Edit_pdf_add.Text,fmOpenRead);
      stream_db.CopyFrom(file_stream,file_stream.Size);
      finally
      file_stream.Free;
      stream_db.Free;
      end; 
   end;
   DataModule1.sidsAdmin.Post;
   DataModule1.sidsAdmin.ApplyUpdates(0);
   DataModule1.sidsAdmin.Refresh;
Ошибка при редактирование последней записи талицы почему-то и только.
Век живи, век учись...

Последний раз редактировалось Stilet; 15.11.2010 в 13:19.
p.majorov вне форума Ответить с цитированием
Старый 15.11.2010, 13:03   #4
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

А установлено
DataModule1.sidsAdmin.CachedUpdates := True; ?
_SERGEYX_ вне форума Ответить с цитированием
Старый 15.11.2010, 13:25   #5
p.majorov
 
Аватар для p.majorov
 
Регистрация: 15.11.2010
Сообщений: 3
По умолчанию

Копонент SimpleDataSet не имеет такого свойства, насколько я знаю у данного комонента невозможно поменять параметры встроеного DataSetProvider к тому же. Некий ряд ограничений имеется.
Век живи, век учись...
p.majorov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление записи из таблицы с помощю процедуры firebird postaveche БД в Delphi 23 08.09.2010 12:28
Отчет для каждой записи таблицы lilu1559 Microsoft Office Access 2 19.05.2010 18:16
Макрос на изменение содержимого поля записи таблицы Reinforced Microsoft Office Access 2 07.10.2009 14:56
Как в ComboBox вывести записи столбца из таблицы chandrasecar Microsoft Office Access 1 29.05.2009 15:18
Отображение первой записи таблицы DBLookupComboBox фЁдОр БД в Delphi 14 06.01.2008 17:04