Как работать с Frxdeflatestream

Доброго времени! Мне нужно перед записью в БД сжимать данные в виде текста.
Со сжатием вроде все получилось. На С++ код выглядит так:
TMemoryStream *S = new TMemoryStream();
TMemoryStream *D = new TMemoryStream();
Memo2->Lines->SaveToStream(S);
S->Position=0;
frxDeflateStream(S,D,gzDefault);
delete S;
D->Position=0;
Memo3->Lines->LoadFromStream(D); //Здесь в виде символов выводит сжатые данные
delete D;
А вот с обратной операцией не выходит:
TMemoryStream *S = new TMemoryStream();
TMemoryStream *D = new TMemoryStream();
Memo3->Lines->SaveToStream(S);
S->Position=0;
frxInflateStream(S,D);
delete S;
D->Position=0;
Memo4->Lines->LoadFromStream(D);
delete D;
Выдает ошибку "Data Error". Подскажите пожалуйста, как тут быть?
Со сжатием вроде все получилось. На С++ код выглядит так:
TMemoryStream *S = new TMemoryStream();
TMemoryStream *D = new TMemoryStream();
Memo2->Lines->SaveToStream(S);
S->Position=0;
frxDeflateStream(S,D,gzDefault);
delete S;
D->Position=0;
Memo3->Lines->LoadFromStream(D); //Здесь в виде символов выводит сжатые данные
delete D;
А вот с обратной операцией не выходит:
TMemoryStream *S = new TMemoryStream();
TMemoryStream *D = new TMemoryStream();
Memo3->Lines->SaveToStream(S);
S->Position=0;
frxInflateStream(S,D);
delete S;
D->Position=0;
Memo4->Lines->LoadFromStream(D);
delete D;
Выдает ошибку "Data Error". Подскажите пожалуйста, как тут быть?