Search  
Tuesday, August 16, 2022 ..:: Forum ::.. Register  Login
 Forum Minimize
Pentru a putea posta mesaje trebuie să vă înregistraţi.
Notă: Mesajele cu conţinut jignitor sau ilegal (inclusiv cereri de soft piratat) nu sunt acceptate şi vor fi şterse imediat .

Pentru a primi raspunsuri rapide si corecte, scrieti in mesaj ce intentionati sa faceti, ce mesaj de eroare primiti, in ce context si in urma caror actiuni. De asemenea, mentionati versiunea de FoxPro in care lucrati!
Dacă nu specificați versiunea, se consideră VFP 9.0 SP2.

SearchForum Home
  Visual FoxPro  Client/Server  Fotografie in c...
 Fotografie in camp BLOB
 
 11/16/2020 1:51:24 PM
User is offlineflorinbad
60 posts
https://www.turismcultural.ro




Fotografie in camp BLOB
 (N/A)
Frontend: Visual FoxPro 9
Backend: MariaDB (merge si pentru MySQL)
Se poate incarca in MySQL orice documentatie (.doc, .pdf) sau fotografie.

Mi s-a cerut sa introduc in ERP-ul pe care-l fac, avizele de intrare in firma. Ma apucasem sa fac programare clasica apoi mi-a venit o idee: ce-ar fi sa le scanez si sa le salvez in imagini .JPEG?
In fine, dupa lupte seculare am reusit. Cert este ca functiile FileToStr() si StrToFile() nu au mers din prima, avand mereu erori. Asa ca am cautat pe net si am gasit solutia salvatoare: fotografiile se "descompun" in hexBinary, apoi sunt refacute la loc cand sunt "extrase" din server. Am folosit functia STRCONV().
Cum am procedat:
- am setat scannerul pentru o dimensine cat mai mica a fotografiei (format A4, 75dpi, JPEG, LOW) si am obtinut dimensiuni de 65-95 Kb a fotografiilor (nu am vrut sa incarc serverul cu fotografii pea mari ca dimensiune)
- am scanat avizele si le-am salvat in formatul .jpeg
- am creat un folder c:\avizeint si le-am copiat acolo
- le-am trimis in server cu STRCONV() (se codeaza hexbinary cu setarea 15 si se decodifica la forma initiala cu setarea 16). In mysql am un camp numit "imagine", de tip MEDIUMBLOB (am incercat si cu tipul BLOB, insa toate fotografiile aveau dimensiunea de 64 Kb, maximul acceptat de tipul BLOB; deci folositi tipul MEDIUMBLOB)

wcale1 = 'c:\avizeint\ALLTRIM(waviz)+'.jpg'
wcale = STRCONV(FILETOSTR(wcale1),15)
csql="INSERT INTO avizeint(avizint,dataavizi,client,imagine) VALUES('"+ALLTRIM(waviz)+"','"+ALLTRIM(wdataaviz)+"','"+ALLTRIM(wclient)+"','"+ALLTRIM(wcale)+"')"
lnResult = SQLEXEC(_Screen.oApp.nConnectionHandle,csql)

- le-am afisat pe ecran cu un select, apoi la un obiect imagine am pus sursa imaginii:
Se da click pe un grid, selectandu-se avizul dorit:
csql="SELECT * FROM avizeint WHERE avizint='"+ALLTRIM(wavizint)+"'"
lnResult = SQLEXEC(_Screen.oApp.nConnectionHandle,csql,"crsavi")

wcale = ALLTRIM(wavizint)+'.jpg'
wcale10 = STRTOFILE(STRCONV(crsavi.imagine,16),wcale)
ThisForm.img_avizint.Picture = wcale10

Poate ajuta pe cineva la introducerea documentelor sau a fotografiilor in MySql sau MariaDB.
  Visual FoxPro  Client/Server  Fotografie in c...

Search  Forum Home         

Copyright 2002-2013 Profox   Terms Of Use  Privacy Statement