Einzelnen Beitrag anzeigen

Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#1

Blob als nicht unterstützter Datentyp nur in CGI?

  Alt 1. Mär 2016, 11:53
Datenbank: Oracle • Version: 11 • Zugriff über: ADO/ODBC
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;
Ralph
  Mit Zitat antworten Zitat