Odczyt pliku i umieszczenie w bazie w polu BLOB

0

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

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?

1 użytkowników online, w tym zalogowanych: 0, gości: 1