Форум: "Базы";
Текущий архив: 2003.09.18;
Скачать: [xml.tar.bz2];
ВнизПомогите разобрться с запихиванием jpg в базу??? Найти похожие ветки
← →
DBDev (2003-08-27 10:05) [0]Надо подгрузить файл JPG и запихать его в поле базы типа image. Использую TDBImage и ТOpenPictureDialog.
//-------------------------------------------------------------------- -------
if (!OpenPictureDialog->Execute()) return;
int f = open((OpenPictureDialog->FileName).c_str(), O_CREAT);
int bytes = filelength(f);
close(f);
if (bytes < 250000) {
if (UIDM->BoardsQuery->State != dsEdit && UIDM->BoardsQuery->State != dsInsert) UIDM->BoardsQuery->Edit();
DBImageA->Picture->LoadFromFile(OpenPictureDialog->FileName);
Clipboard()->Assign(DBImageA->Picture);
DBImageA->Picture->Assign(Clipboard());
}
else Application->MessageBox("Превышен максимально допустимый размер файла (250 КБ)","Ошибка!",MB_OK|MB_ICONERROR);
void __fastcall TBoardForm::FormShow(TObject *Sender)
{
DBImageA->Picture->UnregisterGraphicClass(__classid(TJPEGImage), __classid(TJPEGImage));
DBImageA->Picture->RegisterFileFormat(__classid(TJPEGImage), "jpg", "jpg", __classid(TJPEGImage));
}
//-------------------------------------------------------------------- -------
Не пойму в чем дело, в базе оказываются данные формата BMP вместо JPG, хотя подсовываемый файл точно в JPG.
← →
DBDev (2003-08-27 10:34) [1]???
← →
DBDev (2003-08-27 10:51) [2]Собственно без
Clipboard()->Assign(DBImageA->Picture);
DBImageA->Picture->Assign(Clipboard());
Данные почему-то вобще не записываются...
← →
zorik (2003-08-27 11:06) [3]Используй TStream. А еще посмотри старые вопросы в этом же разделе, там минимум 3 таких вопроса есть с ответами. Сначала нужно искать внимательно, а потом спрашивать.
← →
DBDev (2003-08-27 11:22) [4]Use TBlobStream to access or modify the value of a BLOB field in a BDE-enabled dataset. А если у меня АДО???
← →
Delirium (2003-08-27 11:31) [5]TBlobField тебе поможет
← →
DBDev (2003-08-27 12:01) [6]Дык именно его я и использую. В моем случае DBImageA и есть TBlobField.
← →
DBDev (2003-08-27 12:50) [7]Совсем запутался :(((! из отпуска только.
Может у кого есть работающий пример кода записи JPG в базу?
← →
Nikky (2003-08-27 18:54) [8]TBlobField(SomePictureField).LoadFromFile(PictureFileName);
← →
Петрович (2003-08-28 11:50) [9]Привет, а зачем тебе запихивать jpg в базу
не проше бы в базе держать информацию о jpg а сами файлы просто в каталоге???
← →
Arm79 (2003-08-28 15:09) [10]Лучше всего в "базе держать информацию о jpg а сами файлы просто в каталоге".
А если необходимо именно jpg, то необходимо создать объект TJpegImage, загрузить в него картинку с помощью Assign, а затем записать через метод SaveToStream в поток TADOBLOBStream, предварительно соединенный с BLOB-полем. Считывать тоже необходимо в TJpegImage
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.09.18;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c