Thread View: pl.comp.lang.delphi.bazy-danych
15 messages
15 total messages
Started by jw_developer
Sun, 12 Nov 2017 11:19
CodeTyphon + ZEOSLIB + problem z zapisem grafiki
Author: jw_developer
Date: Sun, 12 Nov 2017 11:19
Date: Sun, 12 Nov 2017 11:19
20 lines
1620 bytes
1620 bytes
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 ?.....
Re: CodeTyphon + ZEOSLIB + problem z zapisem grafiki
Author: miab
Date: Mon, 13 Nov 2017 10:51
Date: Mon, 13 Nov 2017 10:51
7 lines
1040 bytes
1040 bytes
W dniu 12-11-2017 o 12:19, jw_developer pisze: > F_03 BLOB SUB_TYPE 0 SEGMENT SIZE 80 NOT NULL Dlaczego NOT NULL? Masz klucz? miab
Re: CodeTyphon + ZEOSLIB + problem z zapisem grafiki
Author: jw_developer
Date: Mon, 13 Nov 2017 12:28
Date: Mon, 13 Nov 2017 12:28
13 lines
1454 bytes
1454 bytes
W dniu 2017-11-13 o 11:51, miab pisze: > W dniu 12-11-2017 o 12:19, jw_developer pisze: >> F_03 BLOB SUB_TYPE 0 SEGMENT SIZE 80 NOT NULL > > Dlaczego NOT NULL? > Masz klucz? > > miab Tak. Jest to tabela przechowująca wizerunki (zdjęcia) pracowników (jeżeli takowe istnieją), która posiada również pole F_02 (integer) będącym kluczem obcym do tabeli pracowników. Zapomniałem napisać, że ZEOS-y to 7.2.1-rc
Re: CodeTyphon + ZEOSLIB + problem z zapisem grafiki
Author: miab
Date: Mon, 13 Nov 2017 14:21
Date: Mon, 13 Nov 2017 14:21
38 lines
2211 bytes
2211 bytes
W dniu 13-11-2017 o 13:28, jw_developer pisze:
> W dniu 2017-11-13 o 11:51, miab pisze:
>> W dniu 12-11-2017 o 12:19, jw_developer pisze:
>>> F_03 BLOB SUB_TYPE 0 SEGMENT SIZE 80 NOT NULL
>>
>> Dlaczego NOT NULL?
>> Masz klucz?
>>
>> miab
>
> Tak. Jest to tabela przechowująca wizerunki (zdjęcia) pracowników
> (jeżeli takowe istnieją), która posiada również pole F_02 (integer)
> będącym kluczem obcym do tabeli pracowników. Zapomniałem napisać, że
> ZEOS-y to 7.2.1-rc
Mi taka sekwencja:
<code>
if OpenPictureDialog1.Execute then
begin
ZQuery1.ParamByName('F_BLOB').LoadFromFile(OpenPictureDialog1.FileName,
ftBlob);
ZQuery1.ParamByName('F1').Value:=StrToInt(Edit1.Text);
ZQuery1.ParamByName('F2').Value:=Edit2.Text;
ZQuery1.ExecSQL;
end;
</code>
dla SQL:
INSERT INTO T1 VALUES (:F1, :F2, :F_BLOB)
działa z formatem *.bmp w Lazarus 1.8RC5-Win32 i Delphi 10-Win32
dla FB2.5 i ZEOS 7.2.x svn 4052(7.3.x zresztą też):
https://sourceforge.net/p/zeoslib/code-0/HEAD/tree/branches/testing-7.2/
Nie wiem dlaczego w CT to nie działa(może autor za bardzo odpłynął od
głównego nurtu Lazarus'a)
miab
Re: CodeTyphon + ZEOSLIB + problem z zapisem grafiki
Author: miab
Date: Mon, 13 Nov 2017 14:40
Date: Mon, 13 Nov 2017 14:40
24 lines
1736 bytes
1736 bytes
W dniu 13-11-2017 o 13:28, jw_developer pisze: > W dniu 2017-11-13 o 11:51, miab pisze: >> W dniu 12-11-2017 o 12:19, jw_developer pisze: >>> F_03 BLOB SUB_TYPE 0 SEGMENT SIZE 80 NOT NULL >> >> Dlaczego NOT NULL? >> Masz klucz? >> >> miab > > Tak. Jest to tabela przechowująca wizerunki (zdjęcia) pracowników > (jeżeli takowe istnieją), która posiada również pole F_02 (integer) > będącym kluczem obcym do tabeli pracowników. Zapomniałem napisać, że > ZEOS-y to 7.2.1-rc Na marginesie . Nie wiem dlaczego piszesz ze używasz: ZEOS-y to 7.2.1-rc skoro autor CT pisze: -Update pl_ZeosDBO to Ver 6.3.1 Source SVN Rev 4013 do tego nie za bardzo wiem za bardzo z której gałęzi ciągnie i co tam przerabia. miab
Re: CodeTyphon + ZEOSLIB + problem z zapisem grafiki
Author: Roman Tyczka
Date: Mon, 13 Nov 2017 14:40
Date: Mon, 13 Nov 2017 14:40
15 lines
1177 bytes
1177 bytes
On Sun, 12 Nov 2017 12:19:16 +0100, jw_developer wrote:
> Pole w bazie danych zadeklarowane jako :
> F_03 BLOB SUB_TYPE 0 SEGMENT SIZE 80 NOT NULL
[...]
> StoredProc_1.ParamByName('P_03').LoadFromFile(OpenPictureDialog.FileName,
> ftBlob);
> Gdzie może być błąd ?.....
W nazwie kolumny... nie P_03 tylko F_03
--
pozdrawiam
Roman Tyczka
Re: CodeTyphon + ZEOSLIB + problem z zapisem grafiki
Author: miab
Date: Mon, 13 Nov 2017 14:42
Date: Mon, 13 Nov 2017 14:42
17 lines
1377 bytes
1377 bytes
W dniu 13-11-2017 o 15:40, Roman Tyczka pisze:
> On Sun, 12 Nov 2017 12:19:16 +0100, jw_developer wrote:
>
>> Pole w bazie danych zadeklarowane jako :
>> F_03 BLOB SUB_TYPE 0 SEGMENT SIZE 80 NOT NULL
> [...]
>> StoredProc_1.ParamByName('P_03').LoadFromFile(OpenPictureDialog.FileName,
>> ftBlob);
>
>> Gdzie może być błąd ?.....
>
> W nazwie kolumny... nie P_03 tylko F_03
>
No, parametry można sobie nazywać fantazyjnie.
miab
Re: CodeTyphon + ZEOSLIB + problem z zapisem grafiki
Author: Roman Tyczka
Date: Mon, 13 Nov 2017 15:04
Date: Mon, 13 Nov 2017 15:04
14 lines
1170 bytes
1170 bytes
On Mon, 13 Nov 2017 15:42:55 +0100, miab wrote: >>> Gdzie może być błąd ?..... >> >> W nazwie kolumny... nie P_03 tylko F_03 >> > > No, parametry można sobie nazywać fantazyjnie. Tak, ale zwracam uwagę, że tu też może być błąd. -- pozdrawiam Roman Tyczka
Re: CodeTyphon + ZEOSLIB + problem z zapisem grafiki
Author: miab
Date: Mon, 13 Nov 2017 15:36
Date: Mon, 13 Nov 2017 15:36
45 lines
2414 bytes
2414 bytes
W dniu 13-11-2017 o 15:21, miab pisze:
> W dniu 13-11-2017 o 13:28, jw_developer pisze:
>> W dniu 2017-11-13 o 11:51, miab pisze:
>>> W dniu 12-11-2017 o 12:19, jw_developer pisze:
>>>> F_03 BLOB SUB_TYPE 0 SEGMENT SIZE 80 NOT NULL
>>>
>>> Dlaczego NOT NULL?
>>> Masz klucz?
>>>
>>> miab
>>
>> Tak. Jest to tabela przechowująca wizerunki (zdjęcia) pracowników
>> (jeżeli takowe istnieją), która posiada również pole F_02 (integer)
>> będącym kluczem obcym do tabeli pracowników. Zapomniałem napisać, że
>> ZEOS-y to 7.2.1-rc
>
> Mi taka sekwencja:
>
> <code>
> if OpenPictureDialog1.Execute then
> begin
> ZQuery1.ParamByName('F_BLOB').LoadFromFile(OpenPictureDialog1.FileName,
> ftBlob);
> ZQuery1.ParamByName('F1').Value:=StrToInt(Edit1.Text);
> ZQuery1.ParamByName('F2').Value:=Edit2.Text;
> ZQuery1.ExecSQL;
> end;
> </code>
>
> dla SQL:
> INSERT INTO T1 VALUES (:F1, :F2, :F_BLOB)
>
> działa z formatem *.bmp w Lazarus 1.8RC5-Win32 i Delphi 10-Win32
> dla FB2.5 i ZEOS 7.2.x svn 4052(7.3.x zresztą też):
> https://sourceforge.net/p/zeoslib/code-0/HEAD/tree/branches/testing-7.2/
> Nie wiem dlaczego w CT to nie działa(może autor za bardzo odpłynął od
> głównego nurtu Lazarus'a)
>
> miab
W wersji:
Typhon 6.2 Data 2017-05-17 r54940 FPC 3.1.1 i386-win32-win32/win64
też mi to działa.
miab
Re: CodeTyphon + ZEOSLIB + problem z zapisem grafiki
Author: jw_developer
Date: Tue, 14 Nov 2017 10:55
Date: Tue, 14 Nov 2017 10:55
57 lines
3182 bytes
3182 bytes
W dniu 2017-11-13 o 15:21, miab pisze:
> W dniu 13-11-2017 o 13:28, jw_developer pisze:
>> W dniu 2017-11-13 o 11:51, miab pisze:
>>> W dniu 12-11-2017 o 12:19, jw_developer pisze:
>>>> F_03 BLOB SUB_TYPE 0 SEGMENT SIZE 80 NOT NULL
>>>
>>> Dlaczego NOT NULL?
>>> Masz klucz?
>>>
>>> miab
>>
>> Tak. Jest to tabela przechowująca wizerunki (zdjęcia) pracowników
>> (jeżeli takowe istnieją), która posiada również pole F_02 (integer)
>> będącym kluczem obcym do tabeli pracowników. Zapomniałem napisać, że
>> ZEOS-y to 7.2.1-rc
>
> Mi taka sekwencja:
>
> <code>
> if OpenPictureDialog1.Execute then
> begin
> ZQuery1.ParamByName('F_BLOB').LoadFromFile(OpenPictureDialog1.FileName,
> ftBlob);
> ZQuery1.ParamByName('F1').Value:=StrToInt(Edit1.Text);
> ZQuery1.ParamByName('F2').Value:=Edit2.Text;
> ZQuery1.ExecSQL;
> end;
> </code>
>
> dla SQL:
> INSERT INTO T1 VALUES (:F1, :F2, :F_BLOB)
>
> działa z formatem *.bmp w Lazarus 1.8RC5-Win32 i Delphi 10-Win32
> dla FB2.5 i ZEOS 7.2.x svn 4052(7.3.x zresztą też):
> https://sourceforge.net/p/zeoslib/code-0/HEAD/tree/branches/testing-7.2/
> Nie wiem dlaczego w CT to nie działa(może autor za bardzo odpłynął od
> głównego nurtu Lazarus'a)
>
> miab
>
>
>
przy wykorzystaniu powyższej konstrukcji udało mi się zapisać *.bmp lecz
pozostałe formaty dalej się *wykrzaczają*. Jest to ważne, ponieważ mam
również potrzebę zapisywania do bazy załączników w najrozmaitrzych
formatach, z których *.bmp będzie formatem zapisywanym sporadyczne !
Przy zapisie tekstowych BLOB-ów jest OK
CT 6.2 2017-10-30 r55649 FPC 3.1.1
ZConnection -> Version -> 7.2.1 -rc
Przy okazji, czy zna ktoś jakąś sensowną alternatywę (darmową) do
obsługi Firebird możliwą do zainstalowania w CT 6.2 (oczywiście poza
pakietami instalowanymi razem z IDE) ?
Pozdrawiam
Re: CodeTyphon + ZEOSLIB + problem z zapisem grafiki
Author: miab
Date: Tue, 14 Nov 2017 11:04
Date: Tue, 14 Nov 2017 11:04
14 lines
1672 bytes
1672 bytes
W dniu 14-11-2017 o 11:55, jw_developer pisze: > > przy wykorzystaniu powyższej konstrukcji udało mi się zapisać *.bmp lecz > pozostałe formaty dalej się *wykrzaczają*. Jest to ważne, ponieważ mam > również potrzebę zapisywania do bazy załączników w najrozmaitrzych > formatach, z których *.bmp będzie formatem zapisywanym sporadyczne ! > Przy zapisie tekstowych BLOB-ów jest OK Z tego w zasadzie wynika ze problem masz z prezentacja wizualną uprzednio zapisanych a następnie odczytanych danych. Może to: http://forum.lazarus.freepascal.org/index.php?topic=17606.0 miab
Re: CodeTyphon + ZEOSLIB + problem z zapisem grafiki
Author: jw_developer
Date: Tue, 14 Nov 2017 11:31
Date: Tue, 14 Nov 2017 11:31
23 lines
2179 bytes
2179 bytes
W dniu 2017-11-14 o 12:04, miab pisze: > W dniu 14-11-2017 o 11:55, jw_developer pisze: > >> >> przy wykorzystaniu powyższej konstrukcji udało mi się zapisać *.bmp >> lecz pozostałe formaty dalej się *wykrzaczają*. Jest to ważne, >> ponieważ mam również potrzebę zapisywania do bazy załączników w >> najrozmaitrzych formatach, z których *.bmp będzie formatem zapisywanym >> sporadyczne ! >> Przy zapisie tekstowych BLOB-ów jest OK > > Z tego w zasadzie wynika ze problem masz z prezentacja wizualną > uprzednio zapisanych a następnie odczytanych danych. Może to: > http://forum.lazarus.freepascal.org/index.php?topic=17606.0 > > miab Ponieważ korzystam z IBExpert-a mam możliwość podglądu zapisanych danych w przeglądarce BLOB-ów i widzę, że problem leży nie w prezentacji a w błędnym zapisie.Jak już wcześniej pisałem, we wcześniejszej wersji CT 5.9 wszystko działało rewelacyjnie (dokładnie ta sama wersja FB) ! Pozdrawiam
Re: CodeTyphon + ZEOSLIB + problem z zapisem grafiki
Author: miab
Date: Tue, 14 Nov 2017 12:31
Date: Tue, 14 Nov 2017 12:31
31 lines
2593 bytes
2593 bytes
W dniu 14-11-2017 o 12:31, jw_developer pisze: > W dniu 2017-11-14 o 12:04, miab pisze: >> W dniu 14-11-2017 o 11:55, jw_developer pisze: >> >>> >>> przy wykorzystaniu powyższej konstrukcji udało mi się zapisać *.bmp >>> lecz pozostałe formaty dalej się *wykrzaczają*. Jest to ważne, >>> ponieważ mam również potrzebę zapisywania do bazy załączników w >>> najrozmaitrzych formatach, z których *.bmp będzie formatem >>> zapisywanym sporadyczne ! >>> Przy zapisie tekstowych BLOB-ów jest OK >> >> Z tego w zasadzie wynika ze problem masz z prezentacja wizualną >> uprzednio zapisanych a następnie odczytanych danych. Może to: >> http://forum.lazarus.freepascal.org/index.php?topic=17606.0 >> >> miab > > Ponieważ korzystam z IBExpert-a mam możliwość podglądu zapisanych danych > w przeglądarce BLOB-ów i widzę, że problem leży nie w prezentacji a w > błędnym zapisie.Jak już wcześniej pisałem, we wcześniejszej wersji > CT 5.9 wszystko działało rewelacyjnie (dokładnie ta sama wersja FB) ! U mnie prawidłowao działa zapis wspomniana metodą w: Lazarus 1.8RC5 ZEOS 7.2.x svn 4052 i CT 6.2 pl_ZeosDBO Ver 6.1.2 Date 10-03-2017 SVN trunk Rev 3981. I dotyczy to formatów *.bmp, *.jpg i *.png i widać to nawet w DBImage. Na marginesie w Delphi 10 DBImage radzi sobie tylko z formatem *.bmp. Z tego co pamietam w podobnej sytuacji nie używałem w Delphi wprost DBImage. miab
Re: CodeTyphon + ZEOSLIB + problem z zapisem grafiki
Author: miab
Date: Mon, 27 Nov 2017 23:16
Date: Mon, 27 Nov 2017 23:16
59 lines
2618 bytes
2618 bytes
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
Re: CodeTyphon + ZEOSLIB + problem z zapisem grafiki
Author: 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
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads