AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Bilder über client dataset in eine Db speichern
Thema durchsuchen
Ansicht
Themen-Optionen

Bilder über client dataset in eine Db speichern

Ein Thema von Natcree · begonnen am 7. Apr 2013 · letzter Beitrag vom 8. Apr 2013
Antwort Antwort
Natcree

Registriert seit: 5. Mär 2013
502 Beiträge
 
Delphi 7 Enterprise
 
#1

Bilder über client dataset in eine Db speichern

  Alt 7. Apr 2013, 18:22
Habe ein Clientdataset und will Bilder in die xml ablegen.

vorher habe ich das mit einer ttable gemacht und es in eine DB Datei gespeichert.

Jetzt geht es mit dem clientdataset nicht mehr

Hier der code zum einfügen

Delphi-Quellcode:
if OpenpictureDialog1.Execute then
DBImage1.Picture.LoadFromFile(OpenpictureDialog1.FileName);
danach klicke ich auf speichern mittels Clientdataset1.post;

Woran kann es liegen
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#2

AW: Bilder über client dataset in eine Db speichern

  Alt 7. Apr 2013, 18:40
Was geht denn nicht? Kommt eine Fehlermeldung?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Natcree

Registriert seit: 5. Mär 2013
502 Beiträge
 
Delphi 7 Enterprise
 
#3

AW: Bilder über client dataset in eine Db speichern

  Alt 7. Apr 2013, 18:43
nee fehler kommt nicht ich setzte das dataset auf edit dann hole ich das bilde siehe code oben. das bild wird auch im Fenster angezeigt dann gehe ich auf speichern und setze das dataset auf post.
Beim aufrufen des datensatzes ist das bild aber nicht drinne.

Es kommt keine Fehlermeldung
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#4

AW: Bilder über client dataset in eine Db speichern

  Alt 7. Apr 2013, 19:01
nee fehler kommt nicht ich setzte das dataset auf edit dann hole ich das bilde siehe code oben. das bild wird auch im Fenster angezeigt dann gehe ich auf speichern und setze das dataset auf post.
Beim aufrufen des datensatzes ist das bild aber nicht drinne.

Es kommt keine Fehlermeldung
Bei mir kommt auch kein Fehler - dafür wird aber das Bild korrekt angezeigt. Auch bei mehrfachem Programmaufruf und Speichern in einer Datei.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Natcree

Registriert seit: 5. Mär 2013
502 Beiträge
 
Delphi 7 Enterprise
 
#5

AW: Bilder über client dataset in eine Db speichern

  Alt 7. Apr 2013, 19:14
das ist die bild holen procedure vorher wird clientdataset1.edit gesetzt

Delphi-Quellcode:
procedure TForm1.Button5Click(Sender: TObject);
begin
ShellExecute(handle,PChar('open'),PChar('mspaint.exe'),PChar(''),PChar(ExtractFilePath(Application.Exename)),SW_SHOW);
clientdataset1.Edit;
if OpenpictureDialog1.Execute then
DBImage1.Picture.LoadFromFile(OpenpictureDialog1.FileName);
end;
danach speichere ich hiermit

Delphi-Quellcode:
If Clientdataset1.State in [dsEdit,dsInsert] then
Clientdataset1.Post;
wo liegt denn der fehler

das clientdataset1 speichert alles in eine XML Datei habe nur das dataset und ne datasource kompo

habe für das bild ein dbimage gesetzt und die felder zugeordnet
  Mit Zitat antworten Zitat
Natcree

Registriert seit: 5. Mär 2013
502 Beiträge
 
Delphi 7 Enterprise
 
#6

AW: Bilder über client dataset in eine Db speichern

  Alt 7. Apr 2013, 19:19
hier noch die Einstellung fürs field im clientdataset
Miniaturansicht angehängter Grafiken
1.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#7

AW: Bilder über client dataset in eine Db speichern

  Alt 7. Apr 2013, 20:39
Der einzige Unterschied, den ich sehe ist, daß bei mir Size = 0 und bei dir Size = 1 ist. Ansonsten macht mein Code erstmal dasselbe.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Natcree

Registriert seit: 5. Mär 2013
502 Beiträge
 
Delphi 7 Enterprise
 
#8

AW: Bilder über client dataset in eine Db speichern

  Alt 7. Apr 2013, 20:48
ist bei dir auch nur ein cliendataset und ne datasource

hast du als field type blob oder grafic

ich verstehe es nicht.
  Mit Zitat antworten Zitat
Natcree

Registriert seit: 5. Mär 2013
502 Beiträge
 
Delphi 7 Enterprise
 
#9

AW: Bilder über client dataset in eine Db speichern

  Alt 7. Apr 2013, 21:11
wie es aussieht haben die datasets Probleme mit jpeg Dateien denn mit bmp funktioniert es. gibt es da irgendwas um dieses Problem zu lösen. habe schon jpeg in die uses Klausel aufgenommen
  Mit Zitat antworten Zitat
Volker Z.

Registriert seit: 4. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#10

AW: Bilder über client dataset in eine Db speichern

  Alt 8. Apr 2013, 02:37
Hallo,

also, wenn Du nur die Bilddaten speichern möchstest (und Dir das ursprüngliche Format egal ist), dann kannst Du mal folgedes versuchen:

Delphi-Quellcode:
uses
  jpeg;

function LoadBitmap (const Filename : string) : TBitmap;
begin
  Result := TBitmap.Create;
  try
    Result.LoadFromFile (Filename)
  except
    FreeAndNil (Result)
    // raise an exception or whatever you wanna do
  end
end;

function LoadIcon (const Filename : string) : TBitmap;
var
  i : TIcon;
begin
  i := TIcon.Create;
  try
    Result := nil;
    try
      i.LoadFromFile (Filename);
      Result := TBitmap.Create;
      with Result do
        begin
          Height := i.Height;
          Width := i.Width;
          Canvas.Draw (0, 0, i)
        end
    except
      // raise an exception or whatever you wanna do
    end
  finally
    FreeAndNil (i)
  end
end;

function LoadJPEG (const Filename : string) : TBitmap;
var
  i : TJPEGImage;
begin
  i := TJPEGImage.Create;
  try
    Result := nil;
    try
      i.LoadFromFile (Filename);

      Result := TBitmap.Create;
      Result.Assign (i);
    except
      // raise an exception or whatever you wanna do
    end
  finally
    FreeAndNil (i)
  end
end;

function LoadGraphic (const Filename : string) : TBitmap;
var
  s : string;
begin
  s := LowerCase (ExtractFileExt (Filename));
  if Pos ('.', s) = 1 then
    Delete (s, 1, 1)
  else
    s := '';
  
  if s = 'then
    raise Exception.Create ('File extention of the given filename ought not to be empty');

  if s = 'bmpthen
    begin
      Result := LoadBitmap (Filename);
      Exit
    end;

  if (s = 'jpg') or (s = 'jpeg') then
    begin
      Result := LoadJPEG (Filename);
      Exit
    end;

  if s = 'icothen
    begin
      Result := LoadIcon (Filename);
      Exit
    end;

  // weitere Grafikformate abklopfen und entsprechende Funktionen schreiben
  // falls es keine gültige Dateierweiterung gibt
  // raise an exception or whatever you wanna do
  // or
  Result := nil
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  b : TBitmap;
begin
  if OpenPictureDialog1.Execute then
    try
      b := LoadGraphic (OpenpictureDialog1.FileName);

      ClientDataSet1.Append;
      ClientDataSet1.FieldByName ('Passbild').Assign (b);
      ClientDataSet1.Post;
    finally
      FreeAndNil (b)
    end;
end;
Gruß
Volker Zeller
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz