Wciąganie plików do bazy SQL

0

Witajcie, czy znacie jakiś sposób w delphi na wciągnięcie pliku z internetu do bazy danych MSSQL jeżeli owa znajduje się nie na lokalnym komputerze?, nawet choćby w wypadku kiedy plik mam u siebie na dysku bo sciąganie już mam rozpracowane...

0

Utwórz pole typu "image" i do niego wrzucaj binarne dane.

0

Oczywiście - utwórz pole typu BLOB i wrzuć, komponenty DBX4 (jeśli masz wersję Enterprise) lub dbGo(ADO).

0

hmm no dobra ale jak juz mam to w blobie czy streamie to w jaki sposób to wpakować do bazy?
szukam i szukam i nawet google nie wie..., btw. jest moze jakas dobra książka o łączeniu się z bazą MsSQL używając Delphi?

0

Dzięki

0

No więc dzięki za pomoc, ale dalej sobie z tym nie radzę, może od początku - mam delphi professional i bazę MSSQL z polem typu Image. Wpakowałem (przynajmniej tak mi się wydaje - zapisuje sie na dysku z tego) mojego pdf'a do do TBlobField w taki sposób :

Table1.Close;
          T := TBlobField.Create(Table1);
          T.FieldName := 'DataFile';
          T.Name := Table1.Name + T.FieldName;         
          T.Index := Table1.FieldCount;
          T.DataSet := Table1;
          T.LoadFromFile('C:\sciezkadopliku\plik.pdf');

i mam co do tego kilka pytań... mianowicie po co tyle zachodu w tworzeniu bloba (po co te tabele skoro i tak nic się z nimi nie dzieje?), oraz jak juz mam tą tabelę to jak do niej wrzucic tego bloba (bo chyba da się tylko przez tabelę?) , aha tabelka jest z ADO o ile to robi różnicę. Jest może gdzieś gotowy przykład programu z czymś takim? Tylko błagam niech mi ktoś nie posunie linka do googli bo naprawde długo już szukałem. Z góry dzięki.

0

No i udało mi się :d , poklepałbym się po plecach gdybym miał dłuższe ręce, a tak na przyszłość dla innych sposób jest taki:

var

fs : TfileStream;
bs: TBlobStream;

begin

Table1.Insert;                     //nowa linijka w tabeli;
          Table1.Edit;
          Table1.FieldByName('pole1').AsString := 'costam1';
          Table1.Edit;
          Table1.FieldByName('pole2').AsString := 'costam2';            //kilka wpisów w innych polach

                               
          with Table1 do
          begin
          Edit;
          fs := TFileStream.Create('C:\ścieżkadopliku\plik.rozszerzenie', fmOpenRead);
          bs := TBlobStream(CreateBlobStream(FieldByName('pole w bazie typu image'), bmWrite));
          bs.CopyFrom(fs, 0);
          bs.Free;
          fs.Free;
          Post;
          end;
          Table1.Active:=false;
          Table1.Active:=true;

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