Witam.
Mam taką zagwozdkę. Poprzez OpenPictureDialog pobieram nazwę obrazka. Następnie chcę go odczytać i wrzucić do bazy danych do pola typu BLOB. Czy mógłby mi ktoś podpowiedzieć jak to zrobić??
0
0
Poniżej pokazana metoda służy do zapisu dowolnego pliku do bazy.
Zapis do bazy:
blob := Query.CreateBlobStream(Query.FieldByName('PLIK_BLOB'), bmWrite);
try
blob.Seek(0, soFromBeginning);
fs := TFileStream.Create('c:\obrazek.bmp', fmOpenRead orfmShareDenyWrite);
try
blob.CopyFrom(fs, fs.Size)
finally
fs.Free
end;
finally
blob.Free
end;
Odczyt z bazy:
blob := Query.CreateBlobStream(Query.FieldByName('PLIK_BLOB'), bmRead);
try
blob.Seek(0, soFromBeginning);
with TFileStream.Create('c:\obrazek.bmp', fmCreate) do
try
CopyFrom(blob, blob.Size)
finally
Free
end;
finally
blob.Free
end;
0
Metoda dobra, ale dla mnie raczej nieodpowiednia. Ten plik, który chcę umieścić w bazie, jest jednym z pol w całym rekordzie, jedną składową. A rekord dodaję poprzez ADOCommand. Ale nawet nie przez wpisanie zapytania z parametrami, tylko w programie pod właściwość CommandText przypisuje całe zapytanie. I chyba zmienna przechowująca dane do pliku powinna być stringiem.
0
Fajne rozwiązanie. :-)
OK, a jak teraz odczytać zapisany obrazek w komponencie Image1?