Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.01.13;
Скачать: [xml.tar.bz2];

Вниз

Поля 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.008 c
3-37497
MicroWorld
2003-12-17 12:25
2004.01.13
настройка сетевой БД


14-37866
VictorT
2003-12-17 12:53
2004.01.13
эгоизм... можно ли с ним бороться?


8-37808
Андрій
2003-09-11 16:33
2004.01.13
Тип графического файла


11-37599
help
2003-04-26 06:59
2004.01.13
TKOLListView


3-37533
User_OKA
2003-12-16 10:33
2004.01.13
Триггер





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский