База файлов в Delphi
Добавлено: 10 ноя 2009, 15:43
Здравствуйте.
Мне необходимо создать базу файлов в виде таблицы, в которой будут содержаться колонки:
1) ссылка на файл maple
2) комментарии к файлу
3) параметры для сортировки таблицы
При создании базы данных через Database Desctop, встроенный в дельфи 2005, сделала таблицу в Paradox 7, содержащую необходимые колонки. Однако колонку, в которой должны находиться ссылки на файлы, нельзя редактировать из данного приложения. Автоматически выписывается "BLOB OLE OBJECT", и больше с ней ничего сделать нельзя.
Перенесла таблицу в проект delphi для win32. Открыла таблицу. Долго искала в интернете, на форумах и книгах, как же вставить требуемые файлы в колонки таблицы. Нашла следующую информацию:
Сохранение OLE объекта в базе данных
Иногда необходимо хранить OLE объекты не в файлах, а в базе данных (BLOB поле в таблице). Конечно, в данном случае OLE объект должен быть присоединенным (embedded) в целях переносимости. К сожалению, в стандартной поставке Delphi нет специального объекта типа TDBOLEContainer для данных целей, но OLE объект можно сохранять и восстанавливать с помощью методов SaveToStream и LoadFromStream. Например:
procedure TOLEForm.SaveOLE(Sender: TObject);
var
BlSt : TBlobStream;
begin
With Table1 do
BlSt:=TBlobStream.Create(BlobField(FieldByName('OLE')),
bmReadWrite);
OLEContainer.SaveToStream(BlSt as TStream);
BlSt.Free;
end;
При попытке включить данный код в мой проект при объявлении класса TBlobField была выдана ошибка:
[Fatal Error] My_Nakls.pas(7): F1026 File not found: 'TBlobField.dcu'
Не знаю, с какой стороны подступиться. Задача элементарная, а решения не вижу. Подскажите, пожалуйста, как сделать все-таки эту базу данных, в которой необходимо разместить ссылки на файлы maple с возможностью их открытия, редактирования и сохранения изменений. И как потом из delphi программно обращаться к полям и колонкам для возможности последующей сортировки.
Заранее благодарна,
Александра
Мне необходимо создать базу файлов в виде таблицы, в которой будут содержаться колонки:
1) ссылка на файл maple
2) комментарии к файлу
3) параметры для сортировки таблицы
При создании базы данных через Database Desctop, встроенный в дельфи 2005, сделала таблицу в Paradox 7, содержащую необходимые колонки. Однако колонку, в которой должны находиться ссылки на файлы, нельзя редактировать из данного приложения. Автоматически выписывается "BLOB OLE OBJECT", и больше с ней ничего сделать нельзя.
Перенесла таблицу в проект delphi для win32. Открыла таблицу. Долго искала в интернете, на форумах и книгах, как же вставить требуемые файлы в колонки таблицы. Нашла следующую информацию:
Сохранение OLE объекта в базе данных
Иногда необходимо хранить OLE объекты не в файлах, а в базе данных (BLOB поле в таблице). Конечно, в данном случае OLE объект должен быть присоединенным (embedded) в целях переносимости. К сожалению, в стандартной поставке Delphi нет специального объекта типа TDBOLEContainer для данных целей, но OLE объект можно сохранять и восстанавливать с помощью методов SaveToStream и LoadFromStream. Например:
procedure TOLEForm.SaveOLE(Sender: TObject);
var
BlSt : TBlobStream;
begin
With Table1 do
BlSt:=TBlobStream.Create(BlobField(FieldByName('OLE')),
bmReadWrite);
OLEContainer.SaveToStream(BlSt as TStream);
BlSt.Free;
end;
При попытке включить данный код в мой проект при объявлении класса TBlobField была выдана ошибка:
[Fatal Error] My_Nakls.pas(7): F1026 File not found: 'TBlobField.dcu'
Не знаю, с какой стороны подступиться. Задача элементарная, а решения не вижу. Подскажите, пожалуйста, как сделать все-таки эту базу данных, в которой необходимо разместить ссылки на файлы maple с возможностью их открытия, редактирования и сохранения изменений. И как потом из delphi программно обращаться к полям и колонкам для возможности последующей сортировки.
Заранее благодарна,
Александра