Привет все, форумцы
Давненько в Access ничего не делал и выяснил, что он теперь переехал на ADO и теперь есть несколько вопросов.
Поскольку я редко использую поля, связанные с полями БД, то обычно я создаю Recordset и юзаю его. Раньше было просто: CurrentDb.OpenRecordset(), но это работает только при использовании DAO. В ADO Recordset тоже можно объявить, но пока нашел как, столько времени потерял CurrentProject.ActiveConnection (или что-то похожее)
Но теперь появилось несколько вопросов.
Первое и основное: поиск.
В DAO можно было делать компактно и изящно:
rs.Index = ...
rs.Seek "=", ...
If rs.NoMath Then ...
В ADO метод Seek есть, но Jet4 его не поддерживает. Есть метод .Find, но: (1) я не уверен, что этот метод использует индексы и (2) допускается поиск только по одному полю. Есть более универсальный способ - делать выборку через SQL или фильтры, но уж слишком медленно.
Для чего это нужно? К примеру в таблице есть комбинация полей TYPE,NAME, которая должно быть уникальным. Значит надо перед сохранением записи поискать в таблице другие записи с такой же комбинацией. Find использовать не получится, а делать выборку при каждом сохранении -- это долго (особенно если учесть, что записей может быть много). В этой таблице имеется индекс TYPENAME(TYPE,NAME), могу ли я его как-то использовать?
Заранее спасибо за полные и исчерпывающие ответы