Compression d'une base de données
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 :
Code:
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");
} |
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) ?
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.