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

Ваш аккаунт

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

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

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

read-only dataset

7.4K
27 февраля 2007 года
Gole
31 / / 31.10.2005
Только не пинайте, проблема упоминается довольно часто, но решеня для С++ и FireBird-а мне найти так и не удалось.
Необходимо сохранить в BLOB поле базы данных файл.
Использую для этого следующий код:
 
Код:
Q->Open();
   Q->Edit();//**
   Q->FieldByName("FILE_NAME")->AsString = file_path;
   TBlobField *pBlob = dynamic_cast<TBlobField *>(Q->FieldByName("FILE_CONTENT"));
   pBlob->LoadFromFile( file_path );
   Q->Post();

Предварительно выбрав в Query(Q) нужную запись.
Но на строке ** вылетает ошибка "cannot modify read-only dataset".
Некоторые пишут, что датасэт не доступен для редактирования из-за отсутствия определений запросов редактирования... но в Query то их вообще нету.
В общем я буду ооооооооооооочень признателен любой помощи.
1
27 февраля 2007 года
kot_
7.3K / / 20.01.2000
Цитата: Gole
Только не пинайте, проблема упоминается довольно часто, но решеня для С++ и FireBird-а мне найти так и не удалось.
Необходимо сохранить в BLOB поле базы данных файл.
Использую для этого следующий код:
 
Код:
Q->Open();
   Q->Edit();//**
   Q->FieldByName("FILE_NAME")->AsString = file_path;
   TBlobField *pBlob = dynamic_cast<TBlobField *>(Q->FieldByName("FILE_CONTENT"));
   pBlob->LoadFromFile( file_path );
   Q->Post();

Предварительно выбрав в Query(Q) нужную запись.
Но на строке ** вылетает ошибка "cannot modify read-only dataset".
Некоторые пишут, что датасэт не доступен для редактирования из-за отсутствия определений запросов редактирования... но в Query то их вообще нету.
В общем я буду ооооооооооооочень признателен любой помощи.


Правильно говорит.
напиши запрос с параметрами и в параметр передавай. Дето валялись исходники для файрберда, но в облом сейчас рыть архивы.

309
28 февраля 2007 года
el scorpio
1.1K / / 19.09.2006
Для Query из BDE нужно указать свойство RequestLive ("живой"), тогда запросы станут изменяемыми. Только имеется ряд ограничений на выборку (отдна таблица, без GROUP и тд...)
Ещё можно связать с Query объект типа TUpdateSQL. В нём прописываются запросы на добавление, обновление и удаление результатов данной выборки - после этого появится возможность редактировать и "неживой" набор данных.
1
28 февраля 2007 года
kot_
7.3K / / 20.01.2000
Цитата: el scorpio
Для Query из BDE нужно указать свойство RequestLive ("живой"), тогда запросы станут изменяемыми. Только имеется ряд ограничений на выборку (отдна таблица, без GROUP и тд...)
Ещё можно связать с Query объект типа TUpdateSQL. В нём прописываются запросы на добавление, обновление и удаление результатов данной выборки - после этого появится возможность редактировать и "неживой" набор данных.


Таблица "только для чтения" не станет другой, даже если ты усрешься. Человек ясно написал - почему и зачем это надо.

7.4K
28 февраля 2007 года
Gole
31 / / 31.10.2005
Всеми спасибо.
Решил проблему путем использования компонентов FibPlus. А именно связки Query+DataSet. В Датасєте прописал запросы для редактирования с использованием параметров. ПОка что бегает :)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог