powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Поиск по запросу ADORecordset: альтернатива Find
9 сообщений из 9, страница 1 из 1
Поиск по запросу ADORecordset: альтернатива Find
    #32696272
Elena Gadjieva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребята! Такой вопрос:
В запросе мне нужно найти определенную запись, а затем анализировать информацию в соседних с ней записях (предыдущей и последующей).

Global MyCnn As New ADODB.Connection
Global Ado_Rs As New ADODB.Recordset

MyCnn.ConnectionString = "Driver=sql Server;Server=" & MyServer & ";UID=" & MyUID & ";PWD=" & MyPWD & ";Database=" & MyDatabase
Ado_Rs.Open "TeamCurrentState.ID, TeamCurrentState.StateFrom, TeamCurrentState.StateTo ORDER BY TeamCurrentState.StateFrom, TeamCurrentState.StateTo;", MyCnn, adOpenKeyset, adLockOptimistic, adCmdText
Ado_Rs.Find "ID=" & MyID

Пытаюсь найти альтернативу методу Find (уж очень тормозит :-( ) Почитала в Help-e и в конференции по поводу Seek и Filter. Получается Seek не подходит, т.к. у меня запрос, а не таблица (важно наличие сортировки). Кроме того, MyCnn.Provider=MSDASQL.1. А Filter даст мне только одну запись, и я не смогу найти предыдущую и последующую запись.

Чем можно ускорить выполнение поиска?
Заранее спасибо за советы :-)
...
Рейтинг: 0 / 0
Поиск по запросу ADORecordset: альтернатива Find
    #32696296
Bagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если я правильно понял, то идет обращение к SQL-серверу, но аксесовское приложение само формирует данные. Вот тут могут быть и тормоза. Может написать хранимую процедуру, чтобы данные формировались на сервере, сервер всяко быстрее выполнит, а приложение получит нужную информацию в готовом виде?
...
Рейтинг: 0 / 0
Поиск по запросу ADORecordset: альтернатива Find
    #32696334
Elena Gadjieva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sorry, только сейчас заметила, что когда печатала сообщение, то рекордсет скопировала не полностью ;-)
Ado_Rs.Open "SELECT TeamCurrentState.ID, TeamCurrentState.StateFrom, TeamCurrentState.StateTo FROM TeamCurrentState ORDER BY TeamCurrentState.StateFrom, TeamCurrentState.StateTo;", MyCnn, adOpenKeyset, adLockOptimistic, adCmdText
Таблица храниться на серваке, а приложение - Аксессовкий файл.ADP. Так что сам-то запрос выполняется быстро, а вот поиск по нему медленный :-(
...
Рейтинг: 0 / 0
Поиск по запросу ADORecordset: альтернатива Find
    #32696353
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. искомая запись
Код: plaintext
1.
2.
Select ID, StateFrom, StateTo
From TeamCurrentState
Where ID = [MyID]
Запоминаем StateFrom и StateTo

2. Предыдущая запись
Код: plaintext
1.
2.
3.
Select Top  1  ID, StateFrom, StateTo
From TeamCurrentState
Where (StateFrom = [StateFrom] And StateTo < [StateTo]) Or (StateFrom < [StateFrom])
Order By StateFrom DESC, StateTo DESC

3. Следующая запись
Код: plaintext
1.
2.
3.
Select Top  1  ID, StateFrom, StateTo
From TeamCurrentState
Where (StateFrom = [StateFrom] And StateTo > [StateTo]) Or (StateFrom > [StateFrom])
Order By StateFrom, StateTo

В квадратных скобочках параметры, подставляемые из программы

PS: Авось будет быстрее

PSS: И фотку в профиль выложи :)
...
Рейтинг: 0 / 0
Поиск по запросу ADORecordset: альтернатива Find
    #32696354
Bagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А все таки, почему бы не сделать хранимую процедуру на серваке, который бы давал конечный результат: необходиму запись, предыдущую и последующую?
...
Рейтинг: 0 / 0
Поиск по запросу ADORecordset: альтернатива Find
    #32696356
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Предлагаю сделать другой запрос, с добавкой "WHERE ID=" & MyID, выполнять его тоже на сервере и искать (т.е. просто брать первую запись) по нему.
...
Рейтинг: 0 / 0
Поиск по запросу ADORecordset: альтернатива Find
    #32696358
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
О, опередили...
...
Рейтинг: 0 / 0
Поиск по запросу ADORecordset: альтернатива Find
    #32696361
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир СанычО, опередили...
Бывает :)
...
Рейтинг: 0 / 0
Поиск по запросу ADORecordset: альтернатива Find
    #32698342
Elena Gadjieva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за советы ;-) Так и буду определять каждую из трех записей отдельно. Попробую сделать хранимую процедурку на сервере.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Поиск по запросу ADORecordset: альтернатива Find
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]