Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

AW: Blob als nicht unterstützter Datentyp nur in CGI?

  Alt 1. Mär 2016, 13:26
Irgendeine Unit im CGI nicht eingebunden, aber im Anderen schon?
Die z.B. irgendwas registriert, was im CGI dann nicht vorhanden ist.


Abgesehn davon:
* doppelter Code
* keine Ressourcenschutzblöcke

Delphi-Quellcode:
procedure TBL.StoreFileInDB(const fname:String; var file_id,filesize:integer);
var q:TADOQuery;
    s:TStream;
    f:TFileStream;
begin
  if file_id=0 then
    file_id:=GetNewIDFromSequencer;
  q:=TADOQuery.Create(nil);
  try
    q.Connection:=Con;
    q.SQL.Text:='Select * From &Table Where ID=:FileID';
    q.MakroByName('Table').Value := Table(TabDatei);
    q.ParamByName('FileID').AsInteger := file_id;
    q.Open;
    If FileExists(fname) then
      begin
        if q.IsEmpty then
          begin
            q.Append;
            q.FieldByName('ID').AsInteger:=file_id;
          end
        else
          q.Edit;
        s:=q.CreateBlobStream(q.FieldByName('Datei'), bmWrite);
        try
          s.Seek(0, soFromBeginning);
          f:=TFileStream.Create(fname, fmOpenRead or fmShareDenyWrite);
          try
            filesize:=s.CopyFrom(f,f.Size);
          finally
            f.Free;
          end;
        finally
          s.Free;
        end;
        q.Post;
      end
    else
      filesize:=0;
  finally
    q.Free;
  end;
end;
$2B or not $2B
  Mit Zitat antworten Zitat