Форум: "Начинающим";
Текущий архив: 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