[delphi .net Mysql] o co chodzi z tym blobem

Odpowiedz Nowy wątek
2007-01-11 00:27
0

;-P Mam problem, pewnie banalny lecz jak to mówią kto pyta nie błądzi. Chcę dodać plik PDF do pola kolumny BLOB w mojej bazie a potem móc zapisać z powrotem do pdf. Lecz nie mam pojęcia jak. Wiem że muszę pli pobrać jako strumień ale jak to zapisać przy omocy dbexpress [???] . Przeszukałem forum i google i znalazłem coś co wygląda obiecująco:

To save a file to BLOB:

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

  fs := TFileStream.Create('c:\your_name.doc', fmOpenRead orfmShareDenyWrite);
  try
    blob.CopyFrom(fs, fs.Size)
  finally
    fs.Free
  end;
finally
  blob.Free
end;

To load from BLOB:

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;

Using this code you can work with any database engine (BDE/ADO/DAO/ODBC/DBISAM/etc) and any file format (document of MS Word, spreadsheet of MS Excel, bitmap or jpeg pictures, wav-files etc)

no i fajnie pobier plik do strumienia fs przybisuje do Fielda blob ale jak zapisać to w bazie [???]
Pewno się domyślacie że niejestem wytrawnym programistą więc proszę o pomoc jeśli to możliwe jak najprostszą ;-P

...

I cisza :-(
Może chociaż wskazówka :-| pleeeeeease [!!!]


Nie dyskutuj z głupcem - sprowadzi cię do swojego poziomu i pokona doświadczeniem.

Pozostało 580 znaków

2007-01-12 10:58
0

Ja zrbiem cos takiego

procedure TForm1.Button2Click(Sender: TObject);
var
PDFdoc : TField;
blob : TStream;
fs : TFileStream;
begin
SQLDataSet.CommandText :='SELECT * FROM blobing WHERE idBlobing=1';
SQLDataSet.ExecSQL(true);
SQLDataSet.Open;
blob := SQLDataset.CreateBlobStream(SQLDataset.FieldByName('Bloob'), bmWrite);

try
  blob.Seek(0, soFromBeginning);

  fs := TFileStream.Create(Edit1.Text, fmOpenRead);
  try
    blob.CopyFrom(fs, fs.Size);
  finally
    fs.Free
  end;
finally
  blob.Free;
  SQLDataSet.Close;
  end;

end;

łączy się z bazą znajduje pole bloob typy longblob , pobiera stream z plkiu laduje do blob ale jak uatkualnic pole w bazie bo sam mi go nie uaktualnia.
proszę pomóżcie to gardłowa sprawa i ostatnia żecz bym w końcu zakończył mój program. :-)


Nie dyskutuj z głupcem - sprowadzi cię do swojego poziomu i pokona doświadczeniem.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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