Article View: pl.comp.lang.delphi.bazy-danych
Article #70228Re: Plik (obrazek) do bazy (pole blob)
From: gosmo
Date: Wed, 27 Jun 2007 14:09
Date: Wed, 27 Jun 2007 14:09
35 lines
2211 bytes
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-mailReferences:
<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