Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2012.06.03;
Скачать: [xml.tar.bz2];

Вниз

Функция 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.004 c
10-1178246235
Igreh
2007-05-04 06:37
2012.06.03
создание COM


15-1327005002
Юрий
2012-01-20 00:30
2012.06.03
С днем рождения ! 20 января 2012 пятница


2-1327909072
jacksotnik
2012-01-30 11:37
2012.06.03
потеря управления контрола


15-1328100148
Псарь
2012-02-01 16:42
2012.06.03
Dummy, Foo, Bar.


2-1327746260
Festil
2012-01-28 14:24
2012.06.03
Динамические TButton, определение нажатия.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский