PostgreSQL, ODBC, CBuilder, lo

ddo
Дата: 04.02.2004 13:07:15
Здравствуйте!

Столкнулся с такой проблеммой:

База PostgreSQL 7.3.3
ODBC драйвер 7.3.1
CBuilder 6

Создал таблицу:
CREATE TABLE temp(
id serial,
doc lo
);

Помещаю в таблицу документы:

        TStringList *Temp = new TStringList();

Temp->LoadFromFile(OpenDialog->FileName);

String SQLstr;
Query->Close();
Query->SQL->Clear();
SQLstr="INSERT INTO temp (doc)"
" VALUES (:doc1)";
Query->SQL->Add(SQLstr);

TMemoryStream *St=new TMemoryStream;
Temp->SaveToStream(St);
delete Temp;

Query->ParamByName("doc1")->ParamType=ptInput;
Query->ParamByName("doc1")->LoadFromStream(St,ftBlob);
delete St;

Query->ExecSQL();


Вроде помещает.

Пытаюсь достать документ:

       Query->Close();

Query->SQL->Clear();
Query->SQL->Add("SELECT doc FROM temp where id=1;");
Query->Open();

if (!((TBlobField*)(Query->FieldByName("doc")))->IsNull)
{
TBlobStream *BS = new TBlobStream((TBlobField*)Query->FieldByName("doc"),bmRead);
TStringList *Temp = new TStringList();
Temp->LoadFromStream(BS);
delete BS;

Temp->SaveToFile("D:\\workdocs\\1.rtf");
delete Temp;
}


Если размер документа до 32Кб - все ОК!
Но если документ больше - возникает проблемма: достается только 32Kb, а остальное просто обрезается!
Может Вы сможете подсказать, как это побороть?
Буду очень благодарен.