Показать сообщение отдельно
  #22  
Старый 17.05.2012, 19:17
Yo_Asakyra Yo_Asakyra вне форума
Прохожий
 
Регистрация: 18.12.2011
Сообщения: 11
Репутация: 10
Восклицание Мистика

Добрый день.
Возникла мистическая ситуация:
При записи данных в БД все поля кроме 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 - Уникальный.

Нужели никто не знает в чём может быть причина?
Ответить с цитированием