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 : 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");
				}
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.