🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.delphi.bazy-danych
Article #70228

Re: Plik (obrazek) do bazy (pole blob)

#70228
From: gosmo
Date: Wed, 27 Jun 2007 14:09
35 lines
2211 bytes
Buster pisze:
> Witam.
> Mam taki mały problemik. Potrzebuję w bazie danych w polu typu blob 
> przechować obrazki. Rekordy dodaję poprzez komponent ADOCommand, 
> wpisując zapytanie insert bezpośrednio w kodzie programu czyli:
> ADOCommand1.CommandText := string_z_zapytaniem;
> 
> Wykombinowałem sobie coś takiego:
> Plik : TFileStream;
> Zdjecie : TStringStream;
> Plik := TFileStream.Create(nazwa_pliku_pobrana_z_Edita, fmOpenRead);
> Zdjecie := TStringStream.Create('');
> Zdjecie.CopyFrom(Plik, Plik.Size);
> 
> Następnie w zapytaniu, w miejscu, gdzie ten plik ma być umieszczam: 
> Zdjecie.DataString.
> Oczywiście to zdjęcie jest jedną ze składowych całego rekordu.
> Niestety ta metoda działa, źle. Otóż wywala się twierdząc, że jest jakiś 
> błąd w składni SQL. Podejrzewam, że chodzi tutaj o jakieś znaki 
> specjalne, które są w ciągu znaków reprezentujących obrazek. W PHP jest 
> taka fajna funkcja addslashes().
> 
> Czy mógłby ktoś mi podpowiedzieć co jest nie tak??
> 
Bez sensu jak lokata ;)

Użyj parametrów w SQLu, np. tak: "insert into (pole) values (:wartosc)", 
a później:
Parameters.ParamByName('wartosc').LoadFromStream(TwojStream, ftBlob)

Przy czym TwojFileStream to oczywiście plik załadowany za pomocą 
TFileStream i żadnych addslashes i ładowania do stringów :)

Pozdrawiam
Przemysław kotowski
Technical Details
Message-ID: <f5tr26$1neo$1@news2.ipartners.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!nf1.ipartners.pl!ipartners.pl!news2.ipartners.pl!not-for-mail
References: <f5tnpf$e0f$1@inews.gazeta.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!nf1.ipartners.pl!ipartners.pl!news2.ipartners.pl!not-for-mail
From: gosmo <gosmo67@poczta.onet.pl>
Newsgroups: pl.comp.lang.delphi.bazy-danych
Subject: Re: Plik (obrazek) do bazy (pole blob)
Date: Wed, 27 Jun 2007 16:09:10 +0200
Organization: GTS Energis
Lines: 35
Message-ID: <f5tr26$1neo$1@news2.ipartners.pl>
References: <f5tnpf$e0f$1@inews.gazeta.pl>
NNTP-Posting-Host: 194.0.167.4
Mime-Version: 1.0
X-Trace: news2.ipartners.pl 1182953350 56792 194.0.167.4 (27 Jun 2007 14:09:10 GMT)
X-Complaints-To: abuse@ipartners.pl
NNTP-Posting-Date: 27 Jun 2007 14:09:10 GMT
In-Reply-To: <f5tnpf$e0f$1@inews.gazeta.pl>
User-Agent: Thunderbird 2.0.0.4 (Windows/20070604)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit