Thema: Delphi Blobfield bei ADO

Einzelnen Beitrag anzeigen

Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#1

Blobfield bei ADO

  Alt 13. Jan 2006, 14:39
Datenbank: / • Version: / • Zugriff über: ADO nativ
Ich habe folgende Funktion zum Updaten eines Records in einer DB-Tabelle:
Delphi-Quellcode:
function TMailTemplateDatabase.UpdateTemplate (RecordID : integer ; Subject : string ; TemplateFilename : string ) : boolean ;
var
  aRS : _RecordSet;
  aOleV : OleVariant;
  sSQL : string ;
  FConnection : string ;
  Dummy : string ;
  aStr : TMemoryStream ;
begin
  aStr := TMemoryStream.create ;
  aSTR.LoadFromFile(TemplateFilename);
  aSTR.position := 0 ;

  aRS := CoRecordSet.Create;
  aRS.CursorLocation := adUseServer;
  with FDatabaseInfo do begin
     sSQL := format('select %s, %s from %s where %s=%d',
                    [Subject,Body,Tablename,ID,RecordID]
                    ) ;
     FConnection := ConnectionString ;
  end ;
  try
    aRS.Open(sSQL, FConnection,adOpenStatic, adLockOptimistic, adCmdText);
    aRS.Collect[0] := Subject ;
    aOleV := StreamToOleVariant (aSTR,aSTR.size) ;
    aRS.Collect[1] := aOleV ; // --> Hier knallt's
    OleVariant (aRS).Update;
  finally
    aRS.Close;
  end;

end;
Der Code klappt auch soweit, bis auf das Problem, dass das Blobfeld aRS.Collect[1] mir Probleme bereitet. Als RuntimeFehlermeldung kommt dann: Der Vorgang ist in diesem Zusammenhang nicht zugelassen.

Wie kann ich denn nun mein Blobfeld, welches in aOleV gespeichert ist, in der Tabelle updaten?
  Mit Zitat antworten Zitat