procedure TFDMySQLDml.BildTabelleInsert2(Seitenlaenge: Integer; FolderID: TStringstream);
var BMap: TBitmap; BJpeg: TJPEGImage; SQLString,Bildname, Bildpfad:
String;
BildTabelleLastId,IDBild, i,inserted : Integer; LPicture : TPicture;
LThumbMemory : TMemoryStream;
begin
LThumbMemory := TMemoryStream.Create;
LPicture := TPicture.Create;
BMap := TBitmap.Create;
//Lokal
BJpeg := TJpegImage.Create;
//Lokal
BJpeg.CompressionQuality := 100;
BJpeg.PixelFormat := jf24Bit;
try
FTotal := FPathList.Count;
for i := 0
to FPathList.Count - 1
do
begin
FRest := FPathList.Count - i;
if FDQueryMain.Active
then
FDQueryMain.Active := False;
Bildname := ExtractFileName(FPathList[i]);
Bildpfad := FPathList[i];
Delete(BildName,Length(BildName)-3,4);
LThumbMemory.Clear;
//<= Beim 2. durchlauf gibts hier eine AV
if ExtractFileExt(FPathList[i]) = '
.NEF'
then
begin
LPicture.LoadFromFile(FPathList[i]);
BMap.Assign(LPicture.Graphic);
FModifyBitmap.ScaleBitmaps(BMap, Seitenlaenge);
BJpeg.Assign(BMap);
BJpeg.SaveToStream(LThumbMemory);
BildTabelleLastId := BildInsertQuery(LThumbMemory, FolderId);
FReportList.Add('
'+ IntToStr(i)+'
-TPicAdmin.BildTabelleInsert2');
FReportList.Add('
');
BildDescribeTabelleInsert(BildTabelleLastId,BildName,Bildpfad);
//Ab hier werden nacheinander die Insert-Prozeduren
inserted := 1;
//aufgerufen
if Assigned(FOnInsertedRecord)
then //<== Hier wird das Event gefeuert; zu dem Zeitpunkt wurde
FOnInsertedRecord(Self,inserted);
//<== ein Datensatz über die verschiedenen Tabellen eingefügt
end;
end;
finally
LThumbMemory.Free;
FreeAndNil(BJpeg);
FreeAndNil(BMap);
FreeAndNil(LPicture);
end;
end;