[Delphi icm Access2k] jpgImage in database opslaan

Pagina: 1
Acties:

  • Da_Jackal
  • Registratie: Juni 2000
  • Laatst online: 07-08 17:15
Na veelvuldig zoeken op zowel GoT als andere websites, heb ik nog niet een oplossing voor het volgende probleem gevonden:

Ik ben in Delphi5 een programma aan 't maken, waarbij oa plaatjes in een Access2000 database (connectie via ADO, helaas geen andere keus mogelijk) opgeslagen moeten worden. Een ID wordt automatisch aangemaakt & een beschijvinkje van het plaatje kan ook gemaakt worden. Maar hier 't echte probleem:

Ik laat het plaatje via een OpenFileDialog in een Image-component op het form. Ook uses jpeg toegevoegd bij het implementation-deel. De meeste plaatjes zijn jpeg'jes.
Zover gaat 't nog goed, maar nu wil ik de pictureID, pictureDescription & de picture zelf in een record opslaan, maar dit lukt niet met de picture zelf.

Hoe kan ik vanuit de image-component een .jpg-image in de access-database zetten, zonder extra componenten?

De enige dingen die vaststaan zijn: Access2000 database, ADO-connectie & liever geen extra componenten (indien het niet anders kan, dan natuurlijk wel een extra component).

Deze topics heb ik op GoT gevonden, maar geven me niet de info die ik graag wil hebben:

[topic=384538/1/25]

[topic=112426/1/25]

Ik hoop dat ik genoeg info gegeven heb. Anders hoor ik 't wel.

Verwijderd

Hoe ziet je access db eruit? Wat lukt niet? Geeft het programma foutmeldingen ofzo?

  • Da_Jackal
  • Registratie: Juni 2000
  • Laatst online: 07-08 17:15
De database heet:
DatabasePictures.mdb

Daarin staat 1 tabel, genaamd:
PICTURE

In die tabel staan de volgende 3 velden:
PictureID (Data Type: Number (long integer))
Picture (Data Type: OLE Object)
Picture (Data Type: Text (field size: 30))

Met deze code:
code:
1
2
3
Fieldvalues['PictureID'] := StrToInt(ePictureID.Text);
Fieldvalues['Picture_Description'] := eAddPicturePictureDescription.Text;
Fieldvalues['Picture'] := ImageAddPicture.Picture;

kan ik wel het pictureID & de picture_description opslaan, maar bij de laatste toevoegen (Picture) krijg ik de foutmelding:
Incompatible Types: 'Variant' and 'TPicture'

Nu weet ik wat deze foutmelding inhoudt (de typen van Veld Picture & ImageAddPicture komen niet overeen), maar ik zou niet weten wat ik dan anders zou moeten doen.

Ook heb ik wat gehoord over een BLOBStream, maar ik heb geen idee hoe ik dit moet implementeren.

Verwijderd

Het is misschien makkelijk in dit geval persistent fields te gebruiken. Zie delphi help hoe [zoek op "persistent fields" oid]

Verder geef ik in [topic=384538] een voorbeeld hoe je een blob field leest; het wegschrijven is dan precies andersom [LoadFromStream wordt SaveToStream etc.]