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;