Форум: "Базы";
Текущий архив: 2003.06.02;
Скачать: [xml.tar.bz2];
Внизкак корректно записать объект OLE в поле БД? Найти похожие ветки
← →
DBDev (2003-05-15 11:44) [0]для TOleContainer объекта?
Для записи (см. код) сначала пишу во временный файл в каталоге TEMP, затем пихаю в базу. Другого способа пока не нашел, подскажите, посоветуйте, господа мэтры!
OleClassName - возвращает имя класса, а не расширение файла.
Последнее нужно для корректной записи поля в БД. Как получить расширение файла для объекта OLE?
if (DocContainer->InsertObjectDialog() == IDOK) {
AnsiString fn = DocContainer->OleClassName;
GExt = НАДО ПОЛУЧИТЬ РАСШИРЕНИЕ ФАЙЛА (для СМ. ниже)
}
Запись в файл:
AnsiString file;
if (osEmpty != DocContainer->State) {
char buff[255];
GetEnvironmentVariable("TEMP", buff, sizeof(buff));
file = AnsiString(buff) + AnsiString("\\temp") + GExt;
DocContainer->OleObject.Exec(Procedure("SaveAs") << file);
Query->Edit();
((TBlobField *)Query->FieldByName("BLOB"))->LoadFromFile(file);
Query->FieldByName("DocumentExt")->AsString = GExt;
Query->Post();
DeleteFile(file);
}
← →
DBDev (2003-05-15 12:01) [1]Или как иным способом "сказать" объекту OLE запишись в поле БД а не в файл???
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.06.02;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.008 c