Article View: pl.comp.lang.delphi.bazy-danych
Article #82853Re: CodeTyphon + ZEOSLIB + problem z zapisem grafiki
From: jw_developer
Date: Tue, 28 Nov 2017 12:19
Date: Tue, 28 Nov 2017 12:19
78 lines
3735 bytes
3735 bytes
W dniu 2017-11-28 o 00:16, miab pisze:
> W dniu 12-11-2017 o 12:19, jw_developer pisze:
>> Witam !
>>
>> Windows 10/64 bit + Firebird 2.5 + CodeTyphon 6.2 +
>> ZEOSLIB(zainstalowana z CT)
>>
>> Pole w bazie danych zadeklarowane jako :
>> F_03 BLOB SUB_TYPE 0 SEGMENT SIZE 80 NOT NULL
>> W poprzedniej wersji CT (5.9) zapis i odczyt grafiki działał bez
>> problemu a w aktualnej wersji nie zapisuje się nic albo ewentualnie
>> jakieś "krzaki" bez względu na format zapisywanej grafiki.
>>
>> StoredProc_1.Params.AddParam(StoredProc_1.Params.CreateParam(ftBlob,'P_03',
>> ptInput));
>> if OpenPictureDialog1.FileName.IsEmpty then
>> StoredProc_1.ParamByName('P_03').Value := Null
>> else
>> StoredProc_1.ParamByName('P_03').LoadFromFile(OpenPictureDialog.FileName,
>> ftBlob);
>>
>> Gdzie może być błąd ?.....
>
> Raczej nie w ZEOS (teraz sprawdziłem).
> W Delphi 10 i Lazarus 1.8RC5 działa
> .LoadFromFile(OpenPictureDialog.FileName, ftBlob)
> natomiast w CT 6.30 nie(znaczy działa z błędami w danych).
> Natomiast ładowanie przez pośredniego stream-a działa dla wszystkich:
> <code>
> procedure TForm1.Button4Click(Sender: TObject);
> var
> blob, fs: TStream;
> begin
> if OpenPictureDialog1.Execute then
> begin
> //
> ZTable1.Insert;
> ZTable1.FieldByName('F1').AsInteger:= 4;
> blob:= ZTable1.CreateBlobStream(ZTable1.FieldByName('F_BLOB'), bmWrite);
> try
> blob.Seek(0, soFromBeginning);
>
> fs:= TFileStream.Create(OpenPictureDialog1.FileName, fmOpenRead or
> fmShareDenyWrite);
> try
> blob.CopyFrom(fs, fs.Size)
> finally
> fs.Free
> end;
> finally
> blob.Free
> end;
>
> ZTable1.Post;
>
> end;
> end;
> </code>
>
> miab
Witam !
Chociaż jest to konstrukcja *bardzo pokrętna* to działa !
Niestety ja dokonuję zapisu z użyciem StoredProc + Execproc (BLOB jest
jednym z parametrów) i nie wiem za bardzo jak dostosować powyższy kod.
Poza tym pozostaje problem odczytu (umieszczenia LOBA w Image.Picture) gdyż
ST := TStringStream.Create(StoredProc_1.ParamByName('NAZWA PARAMETRU
BLOB').AsString);
Image1.Picture.LoadFromStream(ST);
również nie działa (w CT 5.9 działa super !). Pobieranie parametru
dokonuje się również przy użyciu StoreProc + Execproc gdyż w
międzyczasie dokonywane są inne odczyty, zapisy do tabel tymczasowych
itp ... co mogłoby generować niepotrzebny ruch w sieci.
Pozdrawiam
Technical Details
Message-ID:
<5a1d544c$0$15206$65785112@news.neostrada.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!peer01.am4!peer.am4.highwinds-media.com!peer01.fr7!futter-mich.highwinds-media.com!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mailReferences:
<5a082e2f$0$15201$65785112@news.neostrada.pl> <ovi6gf$vfh$1@node2.news.atman.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!peer01.am4!peer.am4.highwinds-media.com!peer01.fr7!futter-mich.highwinds-media.com!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail Subject: Re: CodeTyphon + ZEOSLIB + problem z zapisem grafiki Newsgroups: pl.comp.lang.delphi.bazy-danych References: <5a082e2f$0$15201$65785112@news.neostrada.pl> <ovi6gf$vfh$1@node2.news.atman.pl> From: jw_developer <jw_developer@wp.pl> Date: Tue, 28 Nov 2017 13:19:34 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.5.0 MIME-Version: 1.0 In-Reply-To: <ovi6gf$vfh$1@node2.news.atman.pl> Lines: 78 Message-ID: <5a1d544c$0$15206$65785112@news.neostrada.pl> Organization: Telekomunikacja Polska NNTP-Posting-Host: 178.235.146.8 X-Trace: 1511871564 unt-rea-a-02.news.neostrada.pl 15206 178.235.146.8:20619 X-Complaints-To: abuse@news.neostrada.pl X-Received-Body-CRC: 3221772260 X-Received-Bytes: 3654 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit