kms писал(а) 25. Октября 2007 :: 11:30:Ну, как бы если ты снимаешь ограничение на уникальностью ключа порядка - это касается ТП вцелом
Точнее, ты отдаешь право управления этим ограничением провайдеру, так?
Текущий провайдер ODBC не может работать с неуникальным ключом.
Как я понимаю, это не является необходимым требованием для DBF провайдеров, ибо там есть возможность расширения ключа номером записи.
А самому контролу что нужно от ключа порядка (почему он падает на неуникальных ключах)?
Достаточно ли корректно реализовать CompareRows, чтобы снять проблему?
Или еще что-то нужно? (не готов пока ответить)...
Не надо упираться в организацию ODBC-провайдера. Она не является единственно верной и вообще этот провайдер лучше переделать под серверные курсоры (ИМХО).
Никакое ограничение на уникальность ключа порядка не снимается. Провайдер может определить некоторое поле, как поле, идентифицирующее строку выборки. И он определяет его. Только это поле уже может не иметь отношения с способу выборки строк. Вот и все.
Почему падает на неуникальных ключах не знаю, не видел
ТП я глубоко не копал. И считаю, что это правильно - должно быть хорошое описание взаимодействия, чтобы не было необходимости глубоко копать код. У меня на глючном провайдере бывало, что функция вообще всегда FALSE возвращает и ничего
А на неглючном провайдере у меня обычно все строки уникальны: в статическом используется порядковый номер записи в выборке, а в динамическом - физический номер записи.