Текущий архив: 2004.01.13;
Скачать: CL | DM;
ВнизПоля BLOB и графические изображения Найти похожие ветки
← →
TATIANA (2003-12-10 18:15) [0]Господа мастера , здравствуйте ! Очень нужна Ваша помощь . База создана в IBExpert , есть поле BLOB , в которое надо вставить рисунок *.bmp . Компонент DBImage связала с набором данных , с нужным полем , загрузила в него рисунок (или фото) , а как правильно записать в таблицу не знаю . Компонент IBQuery . Может быть есть способ проще хранить информацию о рисунках . Формат bmp большой , jpg не загружается .
Хотелось бы знать , как правильно сделать .
Всем спасибо за помощь .
← →
Digitman (2003-12-10 18:29) [1]
> База создана в IBExpert
совершенно не важно какими инстр.средствами она создана
см. все касаемое TBlobField
← →
r9000 (2003-12-11 07:19) [2]Я делал так.
uses Jpeg
procedure TForm1.FormCreate(Sender: TObject);
begin
Query1.Active:=false;
Query1.SQL.Clear;
Query1.Sql.Add("select * from ImageJpg ");
Query1.Active:=true;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
var
B1STR:TStringStream;
// Bm2: TMemoryStream;
begin
// Создаем строковый поток
B1STR:= TStringStream.Create("");
//Bm2:= TMemoryStream.Create;
try
Image1.Picture.LoadFromFile(disk1.DirList.FileList.FileName);
//Помещаем изображение в поток
Image1.Picture.Graphic.SaveToStream(B1STR);
//Image1.Picture.Graphic.SaveToStream(Bm2);
except
MessageDlg("Данный файл не jpg-формата",mtInformation,[mbOk],0);
exit;
end;
//edit1.Text:=inttostr(B1STR.size);
Query1.Edit;
//Присваиваем статическому полю содержимое потока
Query1Image.LoadFromStream(B1STR);
//Query1Bin.AsString:=B1STR.DataString;
//Query1Image.LoadFromStream(Bm2);
Query1Char.AsString:=disk1.DirList.FileList.FileName;
//edit1.Text:=disk1.DirList.FileList.FileName;
Query1.Post;
Query1.Active:=false;
Query1.SQL.Clear;
Query1.Sql.Add("select * from ImageJpg ");
Query1.Active:=true;
//Освобождаем поток
B1STR.free;
//Bm2.Free;
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
var
Bm2: TMemoryStream;
Jp2: TJPEGImage;
begin
// Создаем поток
Bm2:=TMemoryStream.Create;
//Помещаем изображение из поля в поток
Query1Image.SaveToStream(Bm2);
Bm2.Position:=0;
//edit1.Text:=inttostr(Bm2.size);
//Создаем изображение
Jp2:=TJPEGImage.Create;
//Загружаем изображение из потока
Jp2.LoadFromStream(Bm2);
try
//Помещаем изображение в компонент Image
Image1.Picture.Bitmap.Assign(Jp2);
except
MessageDlg("Данный файл не jpg-формата",mtInformation,[mbOk],0);
exit;
end;
//Освобождаем поток
Bm2.free;
Jp2.Free;
end;
Это для jpg-формата
← →
TATIANA (2003-12-11 09:31) [3]Спасибо за совет . Еще не пробовала , хочу выбирать рисунок (фото) с помошью OpenPictureDialog , а затем заносить в таблицу , так OpenPictureDialog не открывает файлы ipg , а только bmp , ico ... , хотя в свойстве Filter указано All(*.ipg, *.bmp, *.ico .... ) , может быть кто-то знает в чем проблема .
Спасибо .
← →
ЮЮ (2003-12-11 09:36) [4]в отсутствии модуля JPEG в uses модуля формы
← →
ЮЮ (2003-12-11 09:39) [5]Хотя, если *.ipg указан в фильтре, то, наверное, подключен. В Preview окне диалога показывается? Может ошибка в дальнейшем коде?
← →
TATIANA (2003-12-11 10:23) [6]Спасибо за советы . Код еще не пробовала , но добвавив модуль JPEG - OpenPictureDialog открывает файлы *.jpg .
← →
TATIANA (2003-12-16 12:41) [7]Господа мастера , здравствуйте ! Господа , это первая программа , многое не очень понятно .
Сегодня пробую код. В коде { Query1Image.LoadFromStream(B1STR);}
не совсем понятна запись - Query1Image , я так понимаю , что таким образом определили поле типа Blob в запросе Query1 , но как правильно записать - Query1Image не знаю . На этой строке дает ошибку - не определен идентификатор .
Пробовала :
var Query1Image: TblobField;
begin
Query1Image := IBQuery1.FieldbyName["PLAN"];
Как правильно определить , не знаю . Господа , подскажите начинающему .
Всем спасибо .
← →
Кщд (2003-12-16 14:26) [8]двойной тычок на Ваш компонент
← →
TATIANA (2003-12-16 17:29) [9]Спасибо за совет . Кликнула - поле определилось . Но теперь другая проблема . База создана в IBExpert , метод Post для IBQuery не работает , значит нужно модифицировать запрос .
Компонент IBQuery .
IBQuery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add("select POLE from TABL");
IBQuery1.SQL.Add("where KOD=:param");
IBQuery1.Params[0].AsInteger := KOD1;
Из потока запоминаю в -
IBQuery1POLE.LoadFromStream(B1STR);
Проходит без ошибок .
Господа , как же мне модифицировать запрос . Нужен ли еще какой компонент - IBUpdateSQL?
IBQuery6.Close;
IBQuery6.SQL.Clear;
IBQuery6.SQL.Add("update TABL set POLE = :izmpole");
IBQuery6.SQL.Add("where KOD=:param");
IBQuery6.ParamByName("izmpole").LoadFromStream(B1STR);
IBQuery6.Params[1].AsInteger := KOD1;
IBQUERY6.ExecSQL;
На строке -
IBQuery6.ParamByName("izmpole").LoadFromStream(B1STR);
дает ошибку - Not nougt actual parameters .
Спасибо .
← →
JibSkeart (2003-12-16 17:31) [10]Неужели метод пост не работает ??? :О
Страницы: 1 вся ветка
Текущий архив: 2004.01.13;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.009 c