FBDataSet (библиотека доступа к данным FireBird/Interbase.)

Модератор: Модераторы

Re: FBDataSet (библиотека доступа к данным FireBird/Interbase.)

Сообщение Attid » 29.08.2009 10:08:15

ну раз он замораживается вместе c лазаерем видимо прийдется
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Re: FBDataSet (библиотека доступа к данным FireBird/Interbase.)

Сообщение RomanS » 02.09.2009 08:41:46

Начал более полно использовать FBDataSet в Delphi7 и обнаружил утечку памяти в модуле mydbunit.pas в процедуре TMyDBCustomDataSet.FreeRecordBuffer:
Код: Выделить всё
procedure TMyDBCustomDataSet.FreeRecordBuffer(var Buffer: PChar);
...
  if RecordIsDinamic then begin
    {release dinamics fields}
    AnsiIdx := 0;
    if RecordDinamics[dfsAnsi] > 0 then begin // <-- вот здесь, ошибка, нужно проверять на ">="
      for AnsiIdx := 0 to RecordDinamics[dfsAnsi] do begin
         PAnsiStrings(@(RecBuf^.Data))[AnsiIdx] := '';
      end;
      AnsiIdx := RecordDinamics[dfsAnsi]; // <-- AnsiIdx нужно ещё увеличить на 1
    end;
    if RecordDinamics[dfsWide] > 0 then begin // <--  и вот здесь ошибка
      for WideIdx := AnsiIdx to AnsiIdx + RecordDinamics[dfsWide] do begin
         PWideStrings(@(RecBuf^.Data))[AnsiIdx] := '';
      end;
    end;
  end;
... 

Утечка проявляется если в SQL запросе используется только одно поле String/WideString
версия FBDataSet из svn
Проверьте, может я что напутал...
RomanS
новенький
 
Сообщения: 33
Зарегистрирован: 10.12.2007 10:08:24

Re: FBDataSet (библиотека доступа к данным FireBird/Interbase.)

Сообщение alexs » 02.09.2009 19:32:46

надо смотреть.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4053
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: FBDataSet (библиотека доступа к данным FireBird/Interbase.)

Сообщение xcod » 27.10.2009 10:40:20

Поставил лазарус 0.9.29 SVN 22282 от 26 окт.
UIB из svn и FBDataSet оттуда же.

при вызове SQL редактора и последующем его закрытии(ОК или Отмена) в FBDataSet выходит сообщение об ошибке
У вас нет необходимых прав для просмотра вложений в этом сообщении.
xcod
постоялец
 
Сообщения: 108
Зарегистрирован: 07.08.2009 12:37:23

Re: FBDataSet (библиотека доступа к данным FireBird/Interbase.)

Сообщение alexs » 27.10.2009 22:15:19

Путь вроде верен. Почему туда инишка не может сохраниться?
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4053
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: FBDataSet (библиотека доступа к данным FireBird/Interbase.)

Сообщение xcod » 28.10.2009 07:09:49

Путь верен. Почему не может сохранить понять не могу.
правда лазарус на диске D установлен, но думаю это не должно иметь значения
xcod
постоялец
 
Сообщения: 108
Зарегистрирован: 07.08.2009 12:37:23

Re: FBDataSet (библиотека доступа к данным FireBird/Interbase.)

Сообщение v-t-l » 28.10.2009 11:00:43

Есть подозрение, что это из-за русских букв в пути к файлу.
v-t-l
энтузиаст
 
Сообщения: 727
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Re: FBDataSet (библиотека доступа к данным FireBird/Interbase.)

Сообщение alexs » 28.10.2009 23:04:54

может тампуть в UTF8 получается? надо смотреть. У меня винды особо нет - а уж с русскими логинами вобще...:-(
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4053
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: FBDataSet (библиотека доступа к данным FireBird/Interbase.)

Сообщение xcod » 29.10.2009 12:04:01

Щас установил лазарь и все остальное там где нерусский логин :D ошибок не возникало и файл fbdatasetoptions.ini создался без проблем
xcod
постоялец
 
Сообщения: 108
Зарегистрирован: 07.08.2009 12:37:23

Re: FBDataSet (библиотека доступа к данным FireBird/Interbase.)

Сообщение Vadim » 29.10.2009 13:03:51

xcod
Значит проблема была в UTF8-наименованиях в пути к этому файлу.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: FBDataSet (библиотека доступа к данным FireBird/Interbase.)

Сообщение alexs » 31.10.2009 00:18:16

посмотрим
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4053
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: FBDataSet (библиотека доступа к данным FireBird/Interbase.)

Сообщение xcod » 17.12.2009 09:25:00

обновил FBDataSet до последней ревизии и вдруг куда то пропало свойство SQLScreenCursor :D
и в редакторе SQL на кнопке "Отмена" написано "ОК"
и еще интересует судьба этого поста http://freepascal.ru/forum/viewtopic.php?p=36062#p36062 :D
xcod
постоялец
 
Сообщения: 108
Зарегистрирован: 07.08.2009 12:37:23

Re: FBDataSet (библиотека доступа к данным FireBird/Interbase.)

Сообщение alexrayne » 17.12.2009 15:47:32

Код: Выделить всё
    procedure TMyDBCustomDataSet.FreeRecordBuffer(var Buffer: PChar);
    ...
      if RecordIsDinamic then begin
        {release dinamics fields}
        AnsiIdx := 0;
        if RecordDinamics[dfsAnsi] > 0 then begin // <-- вот здесь, ошибка, нужно проверять на ">="
          for AnsiIdx := 0 to RecordDinamics[dfsAnsi] do begin
             PAnsiStrings(@(RecBuf^.Data))[AnsiIdx] := '';
          end;
          AnsiIdx := RecordDinamics[dfsAnsi]; // <-- AnsiIdx нужно ещё увеличить на 1
        end;
        if RecordDinamics[dfsWide] > 0 then begin // <--  и вот здесь ошибка
          for WideIdx := AnsiIdx to AnsiIdx + RecordDinamics[dfsWide] do begin
             PWideStrings(@(RecBuf^.Data))[AnsiIdx] := '';
          end;
        end;
      end;
    ...


действительно баг. отпатчил бета ветку в репозитарии. беритя.
alexrayne
постоялец
 
Сообщения: 125
Зарегистрирован: 03.12.2008 16:56:26

Re: FBDataSet (библиотека доступа к данным FireBird/Interbase.)

Сообщение alexs » 17.12.2009 20:38:42

alexrayne
Надо было в транк
я их синхронил, перетянул твои изменения в текущий транк.
xcod
Это я с дефайнами баловался - мне нужно было сделать LCL не зависимую компиляцию - а вернуть забыл.
Исправимся.
Можеш сам раскоментировать соответсвующий дефайн в INC файле.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4053
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: FBDataSet (библиотека доступа к данным FireBird/Interbase.)

Сообщение Vesyolyi » 26.12.2009 15:52:59

Что-то не понятно, ошибка на последник версиях uib и fbdataset, странно при чем на работе нет ошибки, а на домашнем компе есть вот тут:
procedure TFBCustomDataSet.QuerySelectOnClose(Sender: TObject);
begin
//FQuerySelect.OnClose:=nil;
Active:=false;
end;
пришлось строку FQuerySelect.OnClose:=nil; заремить
выскакивает при закрытии формы с fbdataset.
Так же не решенные ошибки при cacheupdates=true. когда второй раз делаешь ApplyUpdates, не сбрасывается старый буфер...
Аватара пользователя
Vesyolyi
новенький
 
Сообщения: 26
Зарегистрирован: 10.09.2008 12:09:50
Откуда: г. Слободской

Пред.След.

Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

Рейтинг@Mail.ru