Hallo,
die folgende Funktion funktioniert in einer Desktop-Anwendung, aber nicht in der analogen Web-CGI. Dort kommt die Fehlermeldung: "Der Datentyp wird nicht unterstützt".
Beide Anwendungen sind in Delphi 6 und benutzen die selben BL-Logik-Klassen und die selbe Funktion, die ich als den Übeltäter ausgemacht zu haben glaube (wenn ich sie auskommentiere kommt der Fehler nicht).
Hätte jemand von euch eine Idee, woran das liegen könnte?
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);
q.Connection:=Con;
q.SQL.Text:='Select * From '+Table(TabDatei)+' Where ID='+IntToStr(file_id);
q.Open;
If FileExists(fname) then
begin
if q.RecordCount>0 then
begin
q.Edit;
s:=q.CreateBlobStream(q.FieldByName('Datei'), bmWrite);
s.Seek(0, soFromBeginning);
f:=TFileStream.Create(fname, fmOpenRead or fmShareDenyWrite);
filesize:=s.CopyFrom(f,f.Size);
end
else
begin
q.Append;
q.FieldByName('ID').AsInteger:=file_id;
s:=q.CreateBlobStream(q.FieldByName('Datei'), bmWrite);
s.Seek(0, soFromBeginning);
f:=TFileStream.Create(fname, fmOpenRead or fmShareDenyWrite);
filesize:=s.CopyFrom(f,f.Size);
end;
f.Free;
s.Free;
q.Post;
end
else
filesize:=0;
q.Free;
end;