Autor |
Beitrag |
Flash_68
Hält's aus hier
Beiträge: 13
Win XP
D6 Prof
|
Verfasst: Fr 24.02.12 15: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
Beiträge: 1248
Erhaltene Danke: 187
XP - Server 2008R2
D2 - Delphi XE
|
Verfasst: Fr 24.02.12 15:24
_________________ Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
|
|
Flash_68
Hält's aus hier
Beiträge: 13
Win XP
D6 Prof
|
Verfasst: Fr 24.02.12 15: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
Beiträge: 1248
Erhaltene Danke: 187
XP - Server 2008R2
D2 - Delphi XE
|
Verfasst: Fr 24.02.12 16:19
Wenn Du keine Visuelle Komponente wie DBImage verwenden willst am Einfachsten per
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
Delphi-Quelltext 1: 2: 3: 4: 5:
| begin Bilder.Append; DBImage1.Picture.Bitmap.LoadFromFile('C:\Bilder1\4KEYBUT.BMP'); Bilder.Post; end; |
im Beispiel
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
Hält's aus hier
Beiträge: 13
Win XP
D6 Prof
|
Verfasst: Mo 27.02.12 12: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
Beiträge: 1248
Erhaltene Danke: 187
XP - Server 2008R2
D2 - Delphi XE
|
Verfasst: Mo 27.02.12 12:25
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
Hält's aus hier
Beiträge: 13
Win XP
D6 Prof
|
Verfasst: Mo 27.02.12 12:54
das loadSaveImageBlobs findet er bei bei mir nicht, ist das standartmäßig dabei?
|
|
bummi
Beiträge: 1248
Erhaltene Danke: 187
XP - Server 2008R2
D2 - Delphi XE
|
Verfasst: Mo 27.02.12 13:03
Im Anhang meines letzten Postings ....
_________________ Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
|
|
Flash_68
Hält's aus hier
Beiträge: 13
Win XP
D6 Prof
|
Verfasst: Mo 27.02.12 13:08
das hatte ich über sehen, danke.
Moderiert von Narses: Beiträge zusammengefasst
und für was steht der Eintrag BilderBild?
|
|
bummi
Beiträge: 1248
Erhaltene Danke: 187
XP - Server 2008R2
D2 - Delphi XE
|
Verfasst: Mo 27.02.12 13: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
Hält's aus hier
Beiträge: 13
Win XP
D6 Prof
|
Verfasst: Mo 27.02.12 13:30
Jetzt bekomme ich die Fehlermeldung Inkompatible Typen TBlobfield und TField für die Zeile mit dem SavePicture2Blob.
|
|
bummi
Beiträge: 1248
Erhaltene Danke: 187
XP - Server 2008R2
D2 - Delphi XE
|
Verfasst: Mo 27.02.12 14: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.
Delphi-Quelltext 1:
| SavePicture2Blob(TBlobField(Bilder.FieldByName('Bild')),p); |
_________________ Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
|
|
Flash_68
Hält's aus hier
Beiträge: 13
Win XP
D6 Prof
|
Verfasst: Mo 27.02.12 15:03
Das hat gut geklappt mit dem casten, danke.
Kannst du mir das mit dem persistent machen mal erklären?
|
|
bummi
Beiträge: 1248
Erhaltene Danke: 187
XP - Server 2008R2
D2 - Delphi XE
|
Verfasst: Mo 27.02.12 15:04
Doppelklick auf dem Dataset, rechter Mausklick Felder hinzufügen ....
_________________ Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
|
|
Flash_68
Hält's aus hier
Beiträge: 13
Win XP
D6 Prof
|
Verfasst: Mo 27.02.12 15:11
In der Liste ist mein Feld vorhanden, habe alle felder da eingetragen die ich benötige.
|
|
bummi
Beiträge: 1248
Erhaltene Danke: 187
XP - Server 2008R2
D2 - Delphi XE
|
Verfasst: Mo 27.02.12 15: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
Hält's aus hier
Beiträge: 13
Win XP
D6 Prof
|
Verfasst: Mo 27.02.12 15:59
Kann es daran liegen das es in einem Datenmodul liegt?
|
|
bummi
Beiträge: 1248
Erhaltene Danke: 187
XP - Server 2008R2
D2 - Delphi XE
|
Verfasst: Mo 27.02.12 16: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
Hält's aus hier
Beiträge: 13
Win XP
D6 Prof
|
Verfasst: Di 28.02.12 09:12
Ich habs jetzt wie es ohne den cast geht:
SavePicture2Blob(dm_filme.ADS_FilmeBild,p);
Ich mußte das Datenmodul mit angeben.
|
|