Форум: "Начинающим";
Текущий архив: 2009.12.06;
Скачать: [xml.tar.bz2];
ВнизПоиск в бд Найти похожие ветки
← →
Л.Д. (2009-10-20 13:15) [0]Нужно проверить существует ли определенное значение поля в таблице БД. Использую FindKey, но указатель записи при True перемещается на эту запись, как сделать без перемещения указателя.
← →
Л.Д. (2009-10-20 13:25) [1]Сделал так, но не нравиться с точки зрения оптимальность:
function TDM.SectionExists(SectionId: Integer): Boolean;
var
OldItemId: Integer;
begin
OldItemId := Ffield_item_id.AsInteger;
Result := (SectionId = const_HomeSectionId)
or (cmp_TableByKey_.FindKey([SectionId]) and (Ffield_group_id.AsInteger = 0)
and (Ffield_flags.AsLargeInt <> 1));
cmp_TableByKey_.FindKey([OldItemId]);
end;
← →
Сергей М. © (2009-10-20 13:26) [2]Никак.
← →
clickmaker © (2009-10-20 13:26) [3]> как сделать без перемещения указателя
SQL
if exists (select ... )
← →
Сергей М. © (2009-10-20 13:28) [4]
> не нравиться с точки зрения оптимальность
Правильно не нравится.
Делай закладку, после этого ищи ключ и в случае нахождения возвращайся на сохраненную закладку, после чего уничтожай ее.
← →
Сергей М. © (2009-10-20 13:29) [5]Или, если это TClientDataSet, делай клон НД и ищи ключ в клоне - курсоры оригинального и клонированного НД независимы.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.12.06;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.004 c