Autor Beitrag
Flash_68
Hält's aus hier
Beiträge: 13

Win XP
D6 Prof
BeitragVerfasst: Fr 24.02.12 16:07 
Hallo zusammen,

ich möchte gern Bilder in Datenbanken einfügen und auslesen bzw. mir wieder anzeigen lassen. Habe dazu hier auch schon Themen gefunden, allerdings beziehen sich diese auf Paradox oder andere Datenbanken.

Könnte mir dazu jemand ein paar Tips geben?

Gruß

Flash
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Fr 24.02.12 16:24 

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
Flash_68 Threadstarter
Hält's aus hier
Beiträge: 13

Win XP
D6 Prof
BeitragVerfasst: Fr 24.02.12 16:58 
Es wurde nur geschrieben das ich auf die Pfade der Bilder in die DB einpflegen soll. Mehr wurde nicht geschrieben, wie ich die Bilder selbst einfüge oder auslese hat keiner geschrieben oder ob es das selbe ist wie bei den anderen datenbanken.
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Fr 24.02.12 17:19 
Wenn Du keine Visuelle Komponente wie DBImage verwenden willst am Einfachsten per
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
Var
  bmp:TBitMap;
begin
    bmp:=TBitMap.Create;
    try
      bmp.LoadFromFile('C:\Bilder\MeinBild.BMP');
      Bilder.Edit;
      Bilderbild.assign(bmp);
      Bilder.Post;
    finally
      bmp.Free;
    end;
end;


mit DBImage-Komponente
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
begin
      Bilder.Append;
      DBImage1.Picture.Bitmap.LoadFromFile('C:\Bilder1\4KEYBUT.BMP');
      Bilder.Post;
end;



im Beispiel
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
CREATE TABLE [dbo].[Bilder](
  [id] [int] IDENTITY(1,1) NOT NULL,
  [Bild] [varbinary](max) NULL,
 CONSTRAINT [PK_Bilder] PRIMARY KEY CLUSTERED 
(
  [id] ASC
) ON [PRIMARY]
) ON [PRIMARY]


Wenn Du JPG's verwenden willst muss Du Streams verwenden.
Hake gerne nach wenn obiges nicht ausreicht ...

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
Flash_68 Threadstarter
Hält's aus hier
Beiträge: 13

Win XP
D6 Prof
BeitragVerfasst: Mo 27.02.12 13:03 
Danke erstmal für die Hilfe.

Ich werde wohl überwiegend JPG verwenden und es wäre nett wenn du mir da nochmal helfen könntest.

Gruß

Flash
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Mo 27.02.12 13:25 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
uses LoadSaveImageBlobs,pngimage;
{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
var
  p:TPicture;
begin
  p := TPicture.Create;
  try
    p.LoadFromFile('C:\Icons\IconCollection\ix_ap_all\128x128\shadow\about.png');
    Bilder.Edit;
    SavePicture2Blob(BilderBild,p);
  finally
    p.Free;
  end;

end;

procedure TForm2.Button2Click(Sender: TObject);
begin
  LoadPictureFromBlob(IMage1.Picture,BilderBild);
end;
Einloggen, um Attachments anzusehen!
_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
Flash_68 Threadstarter
Hält's aus hier
Beiträge: 13

Win XP
D6 Prof
BeitragVerfasst: Mo 27.02.12 13:54 
das loadSaveImageBlobs findet er bei bei mir nicht, ist das standartmäßig dabei?
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Mo 27.02.12 14:03 
Im Anhang meines letzten Postings ....

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
Flash_68 Threadstarter
Hält's aus hier
Beiträge: 13

Win XP
D6 Prof
BeitragVerfasst: Mo 27.02.12 14:08 
das hatte ich über sehen, danke.

Moderiert von user profile iconNarses: Beiträge zusammengefasst

und für was steht der Eintrag BilderBild?
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Mo 27.02.12 14:18 
Ein Adodataset mit dem SQL 'Select ID,Bild from Bilder' Bild persistent gemacht

DeinDataset.FieldByName('Bild') .....

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
Flash_68 Threadstarter
Hält's aus hier
Beiträge: 13

Win XP
D6 Prof
BeitragVerfasst: Mo 27.02.12 14:30 
Jetzt bekomme ich die Fehlermeldung Inkompatible Typen TBlobfield und TField für die Zeile mit dem SavePicture2Blob.
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Mo 27.02.12 15:51 
was für ein Feld hast Du den verwendet? varbinary ?
Wenn Du es nicht persistent gemacht hast BilderBild sondern über Bilder.FieldByName('Bild') zugreifst mußt Du es Casten z.B.
ausblenden Delphi-Quelltext
1:
SavePicture2Blob(TBlobField(Bilder.FieldByName('Bild')),p);					

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
Flash_68 Threadstarter
Hält's aus hier
Beiträge: 13

Win XP
D6 Prof
BeitragVerfasst: Mo 27.02.12 16:03 
Das hat gut geklappt mit dem casten, danke.

Kannst du mir das mit dem persistent machen mal erklären?
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Mo 27.02.12 16:04 
Doppelklick auf dem Dataset, rechter Mausklick Felder hinzufügen ....

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
Flash_68 Threadstarter
Hält's aus hier
Beiträge: 13

Win XP
D6 Prof
BeitragVerfasst: Mo 27.02.12 16:11 
In der Liste ist mein Feld vorhanden, habe alle felder da eingetragen die ich benötige.
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Mo 27.02.12 16:43 
Dann kannst Du sie auch direkt verwenden ohne über FieldByName und Cast zu gehen ...

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
Flash_68 Threadstarter
Hält's aus hier
Beiträge: 13

Win XP
D6 Prof
BeitragVerfasst: Mo 27.02.12 16:59 
Kann es daran liegen das es in einem Datenmodul liegt?
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Mo 27.02.12 17:06 
Wo es liegt ist wurscht, was für ein Fehler bekommst Du denn und was für ein FeldTyp ist es (wenn Du es anklickts im Objektinspektor oder in den Deklarationen in Deiner Pas).

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
Flash_68 Threadstarter
Hält's aus hier
Beiträge: 13

Win XP
D6 Prof
BeitragVerfasst: Di 28.02.12 10:12 
Ich habs jetzt wie es ohne den cast geht:

SavePicture2Blob(dm_filme.ADS_FilmeBild,p);

Ich mußte das Datenmodul mit angeben.