Plasarea unei imagini în tabela de acces

Plasarea unei imagini într-o tabelă de acces

Există un tabel cu 3 câmpuri de text și un OLE în care intenționez să stochez imagini. Acces la baza de date pe care o pun în aplicare prin ADO. Pe formular este 3 DBEdit și respectiv DBImage. Întrebarea este cum să adăugați o imagine la masă. Ie Adăug o intrare nouă, completați toate cele trei câmpuri de text cu controalele DBEdit corespunzătoare, dar cum să completez câmpul OLE? Am încercat să proces un dublu clic pe DBImage:

dacă OpenPictureDialog1.Execute apoi
începe
# xA0; ADODataSet1.Edit;
# XA0; DBImage1.Picture.LoadFromFile (OpenPictureDialog1.FileName);
se încheie;

cu toate acestea, imaginea din baza de date nu este salvată. Cum sa fii?

Nu, am experimentat deja postul:

dacă OpenPictureDialog1.Execute apoi
începe
# xA0; ADODataSet1.Edit;
# XA0; DBImage1.Picture.LoadFromFile (OpenPictureDialog1.FileName);
# xA0; ADODataSet1.Post;
se încheie;

> de asemenea, nu se rostogolește.
apoi căutați o eroare în program / date. și anume de exemplu, DBImage1 nu au determinat sursa (sursa de date) la momentul cesiunii, și, prin urmare, nici un loc pentru a salva, sau imaginea nu este încărcată în acel format, și înseamnă „Hitch“ susține afișaj, dar conversia nu este posibilă. (încercați bmp).

Ok, atunci de ce, dacă Acces am forța adăuga bmp fișier în OLE-câmp, atunci când începe programul atunci când aderarea la un MDB-fișier, am obține o excepție EInvalidGraphic și mesajul „imaginea Bitmap nu este validă“, deși bmp-fișier este complet normal și se deschide corect cu un plasture?

pentru că acolo nu adăugați un fișier, ci un obiect în care, pe lângă date, există, de asemenea, informații despre ce să îl deschideți. dbimage se așteaptă la un bmp "curat" în mod natural nu înțelege. (va fi înțeles de containerul OLE, dacă contorizați datele din câmp și le puneți prin flux, de exemplu).
sau puteți prelua prelucrarea și cartografierea pentru dvs. și puteți tăia prefixele inutile din date înainte de a fi afișate. (cu excepția cazului în care, bineînțeles, doriți să luați o scriere globală a moștenitorului universal din dbimage); în timp ce nu există astfel)

asa cum pot cu cele mai mici hemoroizi adauga capacitatea de a afișa imagini în program și posibilitatea de a adăuga intrări pentru a umple nu numai câmpurile de text, ci și pentru a adăuga la baza de date program?

cu bmp pus singuri de lucrări? aici și fă-o. același tip. dacă stabiliți obiectivul de a face totul universal - "înecați în detalii". și, în plus, veți face un monstru cu mișcare lentă, cu care este imposibil să lucrați. nici măcar IMHO.

dacă OpenPictureDialog1.Execute apoi
începe
# xA0; # xA0; str: = OpenPictureDialog1.FileName;
# xA0; # xA0; DBImage1.Picture.LoadFromFile (str);
# xA0; # xA0; ADODataSet1.Edit;
# xA0; # XA0; TBlobField (ADODataSet1.FieldByName ( "imagine")) LoadFromFile (str) .;
# xA0; # xA0; ADODataSet1.Post;
se încheie;

dar acum o altă problemă, programul acceptă doar bmp și 10 imagini au umflat fișierul bazei de date la 5 MB, cum se face suport pentru fișierele JPG?


> leonidus # xA0; (27.01.08 14:12) [8]


> dar acum o altă problemă, programul acceptă doar bmp,
> # xA0; și 10 imagini au suflat fișierul bazei de date la 5 MB, cum se face suport
> Fișierele JPG?

Trebuie să abandonăm DBImage-ul, să salvăm tipul de imagine în baza de date și să-l desenăm.

Problema este rezolvată, mulțumesc tuturor.

Articole similare