Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2012.06.03;
Скачать: CL | DM;

Вниз

Функция BookmarkValid   Найти похожие ветки 

 
LDV   (2012-01-30 12:16) [0]

По коду: если таблица CF_Table не содержит записей Bookmark2 = nil. Далее, когда в блоке finally я проверяю на валидность Bookmark2 валится исключение Access Violation. Разве функция не должна в этом случае вернуть false без иключения?
 


Bookmark1 := G_Controller.G_Table.GetBookmark;
     try
       Bookmark2 := G_Controller.CF_Table.GetBookmark;
       try
         if ActionOn = ACTION_ON_CATEGORIES then
           {  }
           Assert(G_Controller.G_FindById1(CATEGORIES_GROUP))
           {  }
         else
           {  }
           Assert(G_Controller.G_FindById1(PRODUCTS_GROUP));
           {  }
         Query.First;
         while not Query.Eof do
         begin
           SortableFieldList := TObjectList.Create;
           try
             for I := 0 to FieldNameList.Count - 1 do
             begin
               Field := Query.FindField(FieldNameList[I]);
               if (Field = nil) or
                 (FCAP_HideFieldNameList.IndexOf(FieldNameList[I]) <> -1) then
               begin
                 if G_Controller.CF_FindByName1(FieldNameList[I]) then
                   Field := G_Controller.GX_GetField(FCAP_Id1Field.AsInteger)
                 else
                   raise Exception.CreateResFmt(@FIELD_NOT_FOUND,
                     [FieldNameList[I]]);
                 {  }
                 Assert(Field <> nil);
                 {  }
               end;
               SortableFieldList.Add(TSortableField.Create(
                 Boolean(FieldNameList.Objects[I]), FieldNameList[I],
                 Field.DataType, Field.Value));
             end;
             CAP_IdList.AddObject(Query.Fields[0].AsString,
               SortableFieldList);
           except
             SortableFieldList.Free;
             raise;
           end;
           Query.Next;
         end;
       finally
         if G_Controller.CF_Table.BookmarkValid(Bookmark2) then // <- Ошибка, если Bookmark2 = nil
           G_Controller.CF_Table.GoToBookmark(Bookmark2);
         G_Controller.CF_Table.FreeBookmark(Bookmark2);
       end;
     finally
       if G_Controller.G_Table.BookmarkValid(Bookmark1) then
         G_Controller.G_Table.GoToBookmark(Bookmark1);
       G_Controller.G_Table.FreeBookmark(Bookmark1);
     end;


 
Ega23 ©   (2012-01-30 12:40) [1]


> Разве функция не должна в этом случае вернуть false без
> иключения?


Разве у тебя нет исходника, чтобы посмотреть, что должна или не должна вернуть функция?


 
Сергей М. ©   (2012-01-30 12:56) [2]


> Bookmark1 := G_Controller.G_Table.GetBookmark;
>       try
>         Bookmark2 := G_Controller.CF_Table.GetBookmark;


А накой шиш делать две одинаковых закладки ?


 
icWasya ©   (2012-01-30 14:13) [3]

Поведение BookmarkValid сильно зависит от используемой базы данных.
>А накой шиш делать две одинаковых закладки ?
Они разные.


 
Сергей М. ©   (2012-01-30 14:15) [4]


> Они разные


А, ну дв ..

G и CF



Страницы: 1 вся ветка

Текущий архив: 2012.06.03;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.007 c
4-1257417254
Alex_C
2009-11-05 13:34
2012.06.03
Использование COM-порта нескролькими приложениями


15-1327523402
Юрий
2012-01-26 00:30
2012.06.03
С днем рождения ! 26 января 2012 четверг


15-1328011463
Омлет
2012-01-31 16:04
2012.06.03
Запустите свою программу в браузере


15-1328418683
upc
2012-02-05 09:11
2012.06.03
Unable to insert a line.


15-1328025054
Димка На
2012-01-31 19:50
2012.06.03
Что такой ath sin?