![]() |
|
|
Регистрация | << Правила форума >> | 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. |