![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#22
|
|||
|
|||
|
Добрый день.
Возникла мистическая ситуация: При записи данных в БД все поля кроме BLOB (ArrayOfCRC указан как WideString т.к. заношу в него строку) заносятся нормально, а данные в BLOB поле заносятся непонятно по каким правилам. Например: Заношу 6 записей в БД, у некоторых BLOB заполнен, а у некоторых - нет. Помогите разобраться Работаю через FIB+ компоненты. В частности TpFIbDataBase, TpFiBDataSet и TpFIbTransaction. Приведённым ниже кодом я заполняю БД (Interbase, созданная в InterBase & FireBird Manager'e 3.3.0.2). Функции ExtractFileNameEx и CteateCRCArray работают корректно. P.S. в View дебагера смотрел "ParamByName('ArrayOfCRC').AsWideString" тоже все работает нормально. Код:
procedure TMainForm.InsertIntODBClick(Sender: TObject);
var
vTextLengh : Word;
begin
with DataModuleX.DataSet do
try
close;
if not prepared then
Prepare;
with DataModuleX.DataSet.QInsert do
Try
ParamByName('NameOfText').AsString := (FileOpen.Dialog.FileName, True);
ParamByName('ArrayOfCRC').AsWideString := CteateCRCArray(GlobalCanonizedText, 980, Configuration.WordsInShingle.Value, Configuration.NormalDoc.Checked);
ParamByName('TextLength').AsInteger := vTextLengh;
ExecQuery;
finally
QInsert.Params.ClearValues;
DataModuleX.MainTransaction.Commit;
end;
Except
on E : Exception do
ShowMessage(E.ClassName+' Ошибка'+E.Message);
End;
End;Структура БД: ![]() TextId - Первичный ключ. NameOfText - Уникальный. Нужели никто не знает в чём может быть причина? Последний раз редактировалось Yo_Asakyra, 19.05.2012 в 01:07. |