Bonjour,
Je suis sous Builder C++ XE7
J'utilise une TSQLConnection avec une base Sqlite.
J'ai deux questions bien précises :
1) J'importe des documents pdf, docx, bmp, ... dans un champ de type BLOB, tout fonctionne très bien :
Si je charge un document pdf de 1Mo, la taille de la base de données augmente d'environ 1Mo. Y aurait-il une possibilité interne pour compresser ce document et réduire sa taille dans la base (le programme devant être diffusé à terme, la solution doit être dans Builder pour que l'utilisateur n'ai pas à faire de manipulation dans l'explorateur Windows) ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 AnsiString req = "insert into T_DOC (DOC, TAILLE, EXT, NUMDOC )" ; req += " values (:PFICH, " + (AnsiString)(tailf) + ",'" + ExtFich + "'," + (AnsiString)(numdoc) + ")"; Form1->SQLQuery9->Close(); Form1->SQLQuery9->SQL->Clear(); Form1->SQLQuery9->SQL->Add(req); Form1->SQLQuery9->ParamCheck = true; Form1->SQLQuery9->ParamByName("PFICH")->LoadFromFile(OpenDialog1->FileName.c_str(), ftBlob); try { Form1->SQLQuery9->ExecSQL(); } catch (Exception &exception) { ShowMessage("Erreur de chargement"); }
2) Si je supprime ce document, la taille de la base de données ne diminue pas, comment compresser la base (toujours de manière interne et transparente pour un utilisateur) ?
Merci d'avance pour toute indication.
Partager