MySQL - SQLDataSet, blob...

0

Witam, mam problem:

w jaki sposób mogę wrzucić dane do bazy danych (MySQL) używając DataSetów ?

blob := yourDataset.CreateBlobStream(yourDataset.FieldByName('blob'), bmRead);

Gdy używam linii podobnej do tej (do bloba już mam załadowany stream) wyrzuca mi error, że nie dataset nie jest w trybie edycji... nie bardzo wiem jak to ugryźć, bo nie mogę skorzystać ze zwykłego commandline. Ciężko znaleźć dobry help w internecie więc proszę o pomoc.

Jak mogę też przypisać dane do innych pól, jak je w ogóle zadeklarować i jak móc potem to wszystko INSERTować?

Załączam tez kod ładowania z bloba, który działa zupełnie poprawnie, problem jest z samym datasetem.

blob := yourDataset.CreateBlobStream(yourDataset.FieldByName('YOUR_BLOB'), bmRead);
try
  blob.Seek(0, soFromBeginning);

  with TFileStream.Create('c:\your_name.doc', fmCreate) do
    try
      CopyFrom(blob, blob.Size)
    finally
      Free
    end;
finally
  blob.Free
end;

Dodam, że głównym błędem wydaje mi się być to, że set jest READ-ONLY - a ja nie wiem jak to zmienić, komendy typu SQLQuery1.Edit nic nie wnoszą...

EDIT:
Dodam też, że (może) możliwe jest zczytanie pliku binarnego do stringa i wrzucenie go wtedy w zwykłym zapytaniu jako tekst ( INSERT INTO ... VALUES (tenstring) ),
bo w takiej postaci jest przechowywany w bazie BLOB (jako ciąg 0 i 1)

0

Udało mi się rozwiązać problem, jeżeli ktoś miałby problem z tym kiedykolwiek to PM.

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