Hallo,
ich möchte mit folgernder procedure Bilder in eine
DB schieben.
Ich benutze Delphi 6 Ent. und eine Oracle 8i
DB. Die Tabelle hat folgendes Format:
SQL-Code:
create table BILDER
(
BILDNAME VARCHAR2(50) not null,
BILDBINARY BLOB
)
Mit der auskommentierten Zeile lief es zwar, aber mache Bilder waren zum Teil
kaputt oder Farbverfälscht. Nun habe ich gelesen, daß ftOraBlob speziel für Oracle 8 Tabellen ist.
Ich bekomme da aber eine Fehlermeldung 'ORA-22275: invalid LOB locator specified'.
Irgendwo habe ich gelesen, daß ich erst einen Lob Locator öffnen muß, aber wie ?
Gruss Karsten
Delphi-Quellcode:
procedure TForm1.mnuLoadClick(Sender: TObject);
var
Jpg : TJpegImage;
Stream : TMemoryStream;
FileExt : string;
begin
if dlgOpenPicture.Execute then begin
Jpg := nil;
Stream := nil;
try
Stream := TMemoryStream.Create;
Jpg := TJpegImage.Create;
Jpg.LoadFromFile( dlgOpenPicture.FileName );
Image1.Picture.Assign( Jpg );
Jpg.SaveToStream( Stream );
Stream.Position := 0;
// Query1.ParamByName( 'PBildBinary' ).LoadFromStream( Stream, ftBlob );
Query1.ParamByName( 'PBildBinary' ).LoadFromStream( Stream, ftOraBlob );
Query1.ParamByName( 'PBildname' ).AsString := ExtractFilename( dlgOpenPicture.FileName );
Query1.Prepare;
Query1.ExecSQL;
except
jpg.Free;
Stream.Free;
raise;
end;
jpg.Free;
Stream.Free;
end;
end;
[edit=sakura] [sql]-Tags. Mfg, sakura[/edit]