Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.03.24;
Скачать: [xml.tar.bz2];

Вниз

Не работает в ADO поддержка индексов и соответственно SЕЕК   Найти похожие ветки 

 
Alexey Tmur   (2003-03-04 11:36) [0]

Столкнулся с такой проблемой - Когда в ADOTable пытаюсь установить свойство IndexName или делаю Seek, то получаю ошибку "Current provider does not support the necessary interface for Index functionality" Использую Microsoft OLE DB provider for SQL Server. Что может быть?


 
sniknik   (2003-03-04 11:41) [1]

MSSQL не любит Table (вернее принципов которые идут при работе с ним), переводи на ADODataSet и запросы.

ADO совсем ни при чем.


 
Alexey Tmur   (2003-03-04 11:56) [2]

Получил то-же сообщение.
Дело в том, что там раньше был BDE и были Find-ы с индексами для перемешения курсора. Сейчас хочу с минимальными изменениями перевести все на ADO заменив соответствующие компоненты и Find на Seek.


 
sniknik   (2003-03-04 12:03) [3]

> Сейчас хочу с минимальными изменениями
с минимальными не получится. локальный подход меняеш на клиент/сервер. готовься к глобальным изменениям. или не будет смысла в переходе, будет медленее и глючнее.


 
Delirium   (2003-03-04 12:34) [4]

У ADO существуест своя системя индексации, которая раотает независимо от сервера БД, чтобы проиндексировать какое-либо поле на уровне RecordSet надо сделать следующее:
ADOQuery1.Recordset.Fields["MyField"].Properties["Optimize"].Value:=True;
после этой операции создастся локальный индекс, по выбраному полю.


 
Alexey Tmur   (2003-03-04 13:31) [5]

Все тоже :( Что еще можно придумать, чтобы курсор предвинуть по индексу? А то locate уж больно долго работает.


 
Delirium   (2003-03-04 13:43) [6]

Если взглянуть на реализацию ADODataSet становится очевидным,
что Locate это закамуфлированный RecordSet.Filter, а Seek соответственно RecordSet.Seek (описание см. MSDN). Так что если оптимизация (локальная индексация) не даёт ощутимого эффекта, значит стоит попробовать решить задачу на сервере. По видимому ты пытаешься искать в очень большой выборке.


 
sniknik   (2003-03-04 13:45) [7]

Поиск по фильтру.
Запрос с условием.

и хелп посмотреть до кучи

Using the Seek method depends on the settings of a few properties. IndexName must be set to activate the index to use, CommandType must be cmdTableDirect (for TADODataSet, set TableDirect to True for a TADOTable), CursorLocation must be clUseServer, and CursorType must be ctKeySet.

Note: The VCL Seek method is a direct implementation of the Seek method for the ADO Recordset object. At the time of this writing, this method is only supported for use with Microsoft Access2000 and the Jet 4 provider.

(хелпы у меня вроде самые новые)


 
Delirium   (2003-03-04 13:47) [8]

Можно правда, поробовать CursorLocation=clServer и Seek, возможно это даст какой-то эффект


 
Алексей Тмур   (2003-03-04 15:05) [9]

Тоже не дает никакого эффекта. Странно все это ведь должно же оно работать! Получается, что Seek в принципе вообще не работает. Вроде и ADO последний 2.7SP1 и Delphi последний.


 
sniknik   (2003-03-04 16:20) [10]

прочитай еше раз sniknik © (04.03.03 13:45) внимательно.
хотя ладно переведу, основное (пусть коряво)
> At the time of this writing, this method is only supported for use with Microsoft Access2000 and the Jet 4 provider.
В момент написания этого, метод поддерживается для использования только Microsoft Access2000 и Jet 4 provider.

(этот метод подразумевается Seek как мне кажется :о), описание то его взято)


 
Алексей Тмур   (2003-03-04 16:34) [11]

Спасибо. А слона то я и не заметил. Плохо день сегодня начался :( Короче на запросы придется переписывать



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.03.24;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.009 c
1-76390
Berg
2003-03-13 11:10
2003.03.24
Размер текстового файла


1-76431
Юров Владимир
2003-03-10 22:14
2003.03.24
PHP&Delphi


1-76383
Val_123
2003-03-13 09:45
2003.03.24
Сохранение Run Time компонентов


8-76540
Cash
2002-12-10 03:22
2003.03.24
Как избавиться от моргания?


3-76294
zubov
2003-03-04 18:44
2003.03.24
Создание db-полей в рантайме





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