Форум: "Базы";
Текущий архив: 2002.05.23;
Скачать: [xml.tar.bz2];
ВнизНарод, подскажите как запихнуть в базу картинку программно... Найти похожие ветки
← →
Rub (2002-04-27 10:39) [0]Код:
ADOQuery->Append();
ADOQuery->FieldByName("Title")->AsString = "_Test";
ADOQuery->FieldByName("Image")->AsString = Image1->Picture;
ADOQuery->Post();
База MSSQL поле типа Image
← →
SB.John (2002-04-27 11:14) [1]Использовать потоки (долго объяснять - лениво). Если хочешь проще - используй TDBImage. Привяжи его к нужному полю и вперед
ADOQuery->Append();
DBImage1->LoadFromFile("C:\\1.bmp");
или
DBImage1->PasteFromClipboard(...);
ADOQuery->Post();
Если не хочешь чтобы картинка была видна, просто DBImage1->Visible = false;
← →
Rub (2002-04-27 11:40) [2]У ТDBImage нет метода LoadFromFile....
А как запихнуть предварительно картинку в буфер обмена если действовать через него?
← →
Lusha (2002-04-27 11:42) [3]Смотрите TBlobField и TBlobStream...
← →
SB.John (2002-04-27 12:36) [4]Прошу прощения. Вместо DBImage1->LoadFromFile надо использовать DBImage1->Picture->LoadFromFile. Вот дострочный код из моей проги:
PicTable->Edit();
DBImage1->Picture->LoadFromFile(FileName);
DeleteFile(FileName);
PicTable->FieldByName(mfield)->AsInteger = mvalue;
PicTable->Post();
← →
McSimm (2002-04-28 10:54) [5]Лучше всего с помощью ADOBlobStream. Например:
var
ADOStream: TADOBlobStream;
FileStream: TFileStream;
begin
ADOQuery.Append;
ADOQuery.FieldByName("Title").AsString = "_Test";
ADOStream := TADOBlobStream.Create(ADOQuery.FieldByName("Image"), bmWrite);
try
FileStream := TFileStream.Create(FileName, fmOpenRead);
try
ADOStream.LoadFromStream(FileStream)
finally
FileStream.Free
end
finally
if ADOQuery.State in [dsInsert, dsEdit] then ADOQuery.Post;
ADOStream.Free
end;
end;
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.05.23;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c