InterBase i BLOB
1 отговора
99 прегледа
InterBase i BLOB
Zdraveite, sorry za typiq vypros ama kato gledah dokumentaciqta za BLOB neshto ne razbrah slednoto:
Znachi primerno imam si edna tablica s tri koloni:
Col1 - CHAR(30), Col2 - CHAR(30), Col3 - BLOB
iskam da zapisha v bazata edin tzql red t.e neshto takova:
INSERT INTO TestTable (Col1,Col2,Col3) VALUES (userName, userCar, userPhoto)
tuk pitankata mi e slednata - znachi na men mi trqbva da moga da vkarvam vsevyzmojni vidove snimki - bmp, jpg, GIF i drugi. Kak obache da zaredq v promenlivata userPhoto sydyrjanieto na snimkata. V dokumentaciqta pishe nqkakvi chudesii za tozi BLOB ot sorta na INSERT CURSOR ....; OPEN BLOB; CLOSE BLOB!!!
Ako nqkoi moje da pokaje kak gore dolu trqbva da izglejda edna takava zaqvka shte mu byda mnogo blagodaren.
Obshto vzeto s komponentite v Delphi moje da se popreskochi tozi problem, no se nalaga da se prekarva snimkata prez otdelen komponent vyrzan kym bazata, koeto mi se shte da preskocha po nqkakyv nachin.
Znachi primerno imam si edna tablica s tri koloni:
Col1 - CHAR(30), Col2 - CHAR(30), Col3 - BLOB
iskam da zapisha v bazata edin tzql red t.e neshto takova:
INSERT INTO TestTable (Col1,Col2,Col3) VALUES (userName, userCar, userPhoto)
tuk pitankata mi e slednata - znachi na men mi trqbva da moga da vkarvam vsevyzmojni vidove snimki - bmp, jpg, GIF i drugi. Kak obache da zaredq v promenlivata userPhoto sydyrjanieto na snimkata. V dokumentaciqta pishe nqkakvi chudesii za tozi BLOB ot sorta na INSERT CURSOR ....; OPEN BLOB; CLOSE BLOB!!!
Ako nqkoi moje da pokaje kak gore dolu trqbva da izglejda edna takava zaqvka shte mu byda mnogo blagodaren.
Obshto vzeto s komponentite v Delphi moje da se popreskochi tozi problem, no se nalaga da se prekarva snimkata prez otdelen komponent vyrzan kym bazata, koeto mi se shte da preskocha po nqkakyv nachin.
Eto i edno prilicno reshenie
Kakto se kazva ako sam ne si pomognesh nikoi ne moje da ti pomogne :-)
Eto edno reshenie, koeto pozvolqva da se vkara v BLOB vsichko koeto iskame (Text, kartinki, WAV i dr.). Estestveno izpolzvat se komponenti na Delphi, no podobni neshta bi trqbvalo da ima vyv vsichki vizualni ezitzi.
procedure TForm1.Button2Click(Sender: TObject);
var
PicStream: TStream;
begin
PicStream:=TFileStream.Create(BLOBFile,fmOpenRead);
IBSQL1.SQL.Add('INSERT INTO storage (DiskNo, PicType, PicDesc, SRC) VALUES ('''+Edit4.Text+''', '''+Edit5.Text+''', '''+Edit6.Text+''', :PicBLOB)');
IBSQL1.Prepare;
//IBSQL1.Params.ByName('PicBLOB').LoadFromFile(BLOBFile); moje i taka vmesto LoadFromStream
IBSQL1.Params.ByName('PicBLOB').LoadFromStream(PicStream);
IBSQL1.ExecQuery;
PicStream.Free;
end;
Eto edno reshenie, koeto pozvolqva da se vkara v BLOB vsichko koeto iskame (Text, kartinki, WAV i dr.). Estestveno izpolzvat se komponenti na Delphi, no podobni neshta bi trqbvalo da ima vyv vsichki vizualni ezitzi.
procedure TForm1.Button2Click(Sender: TObject);
var
PicStream: TStream;
begin
PicStream:=TFileStream.Create(BLOBFile,fmOpenRead);
IBSQL1.SQL.Add('INSERT INTO storage (DiskNo, PicType, PicDesc, SRC) VALUES ('''+Edit4.Text+''', '''+Edit5.Text+''', '''+Edit6.Text+''', :PicBLOB)');
IBSQL1.Prepare;
//IBSQL1.Params.ByName('PicBLOB').LoadFromFile(BLOBFile); moje i taka vmesto LoadFromStream
IBSQL1.Params.ByName('PicBLOB').LoadFromStream(PicStream);
IBSQL1.ExecQuery;
PicStream.Free;
end;