Главная страница
    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.47 MB
Время: 0.009 c
2-1327946153
Rorschach
2012-01-30 21:55
2012.06.03
Портирование С++ кода на Паскаль


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


2-1327905510
Nikitos
2012-01-30 10:38
2012.06.03
Как вставить картинку в reportf?


15-1326538361
xayam
2012-01-14 14:52
2012.06.03
База данных совместимости чернил/картриджей/принтеров


2-1327835060
Gu
2012-01-29 15:04
2012.06.03
переделать компонент под xe2 x64





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский