Thema: Delphi TImage an Datenbankfeld

Einzelnen Beitrag anzeigen

Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#2

Re: TImage an Datenbankfeld

  Alt 28. Jul 2004, 01:41
Delphi-Quellcode:
var
  BildStrom : TMemoryStream;
begin
  with QRY_AddData do begin
    SQL.Clear;
    SQL.Add('INSERT INTO dbName ');
    SQL.Add(' ( Feld1 ');
    SQL.Add(' , Feld2 ');
    SQL.Add(' , Feld3 ');
    SQL.Add(' ) ');
    SQL.Add(' VALUES ');
    SQL.Add(' ( :Fld1 ');
    SQL.Add(' , :Fld2 ');
    SQL.Add(' , :Fld3 ')
    SQL.Add(' ) ');

    Parameters.ParamByName('Fld1').DataType := ftString;('Text');
    Parameters.ParamByName('Fld2').DataType := ftInteger;
    Parameters.ParamByName('Fld3').DataType := ftBlob;

    Parameters.ParamByName('Fld1').Value := Trim('Text');
    Parameters.ParamByName('Fld2').Value := 123;

    if not Bild.Picture.Bitmap.Empty then begin // is überhaupt was drin im Bild?
      BildStrom := TMemoryStream.Create;
      try
        Bild.Picture.Bitmap.SaveToStream(BildStrom); // Kühlschrank auf, Kuh rein..
        Parameters.ParamByName('Fld3').LoadFromStream(BildStrom,ftBlob); // Kuh raus, Elefant rein
      finally
        BildStrom.Free; // Aufräumen
      end;
    end else begin // wenn Bild leer, dann brauchen wir auch
                       // keine Bilddaten in DB zu schreiben...
      Parameters.ParamByName('Fld2').Value := NULL; // damit das funzt, unit Variants
                                                    // einbinden - da is NULL deklariert!
    end;
  end;
  try
    ExecSQL;
  except;
  end;
end;
Gruß
Tim Leuschner
Programmierer = moderner Sysiphos: stets wenn er meint, den Stein seiner Dummheit auf den Berg des Wissens gewuchtet zu haben, erblickt er einen völlig neuen Aspekt und der Dummfels poltert mit Getöse zurück ins Tal der Unwissenheit...
  Mit Zitat antworten Zitat