|
|
|
Поиск по запросу ADORecordset: альтернатива Find
|
|||
|---|---|---|---|
|
#18+
Ребята! Такой вопрос: В запросе мне нужно найти определенную запись, а затем анализировать информацию в соседних с ней записях (предыдущей и последующей). 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 даст мне только одну запись, и я не смогу найти предыдущую и последующую запись. Чем можно ускорить выполнение поиска? Заранее спасибо за советы :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2004, 17:39:09 |
|
||
|
Поиск по запросу ADORecordset: альтернатива Find
|
|||
|---|---|---|---|
|
#18+
Если я правильно понял, то идет обращение к SQL-серверу, но аксесовское приложение само формирует данные. Вот тут могут быть и тормоза. Может написать хранимую процедуру, чтобы данные формировались на сервере, сервер всяко быстрее выполнит, а приложение получит нужную информацию в готовом виде? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2004, 17:46:33 |
|
||
|
Поиск по запросу ADORecordset: альтернатива Find
|
|||
|---|---|---|---|
|
#18+
Sorry, только сейчас заметила, что когда печатала сообщение, то рекордсет скопировала не полностью ;-) Ado_Rs.Open "SELECT TeamCurrentState.ID, TeamCurrentState.StateFrom, TeamCurrentState.StateTo FROM TeamCurrentState ORDER BY TeamCurrentState.StateFrom, TeamCurrentState.StateTo;", MyCnn, adOpenKeyset, adLockOptimistic, adCmdText Таблица храниться на серваке, а приложение - Аксессовкий файл.ADP. Так что сам-то запрос выполняется быстро, а вот поиск по нему медленный :-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2004, 18:00:53 |
|
||
|
Поиск по запросу ADORecordset: альтернатива Find
|
|||
|---|---|---|---|
|
#18+
1. искомая запись Код: plaintext 1. 2. 2. Предыдущая запись Код: plaintext 1. 2. 3. 3. Следующая запись Код: plaintext 1. 2. 3. В квадратных скобочках параметры, подставляемые из программы PS: Авось будет быстрее PSS: И фотку в профиль выложи :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2004, 18:07:47 |
|
||
|
Поиск по запросу ADORecordset: альтернатива Find
|
|||
|---|---|---|---|
|
#18+
А все таки, почему бы не сделать хранимую процедуру на серваке, который бы давал конечный результат: необходиму запись, предыдущую и последующую? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2004, 18:07:47 |
|
||
|
Поиск по запросу ADORecordset: альтернатива Find
|
|||
|---|---|---|---|
|
#18+
Предлагаю сделать другой запрос, с добавкой "WHERE ID=" & MyID, выполнять его тоже на сервере и искать (т.е. просто брать первую запись) по нему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2004, 18:08:50 |
|
||
|
Поиск по запросу ADORecordset: альтернатива Find
|
|||
|---|---|---|---|
|
#18+
О, опередили... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2004, 18:09:19 |
|
||
|
Поиск по запросу ADORecordset: альтернатива Find
|
|||
|---|---|---|---|
|
#18+
Владимир СанычО, опередили... Бывает :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2004, 18:11:03 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32696296&tid=1671745]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
32ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 198ms |
| total: | 294ms |

| 0 / 0 |
