Сортировка в ADO

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
Zubik
Новичок
Новичок
 
Сообщения: 40
Зарегистрирован: 07.08.2006 (Пн) 15:54

Сортировка в ADO

Сообщение Zubik » 27.08.2006 (Вс) 21:30

Всем привет.
Создал в Аксесе таблицу с парой полей. Поля проиндексировал. Собираюсь сортировать каждое при нажатии заголовка ЛистВьюира.

Set rs = New ADODB.Recordset

далее в программе ужэ пытаюсь сортировать (из примеров форума):
rs.Sort = "Name" ' где Нэйм - название поля в таблице

Но, при попытке сортировки вылазиет ошыбка:
Run-time error '3251'
Current provider does not support the necessary interfaces for sorting or filtering

Zubik
Новичок
Новичок
 
Сообщения: 40
Зарегистрирован: 07.08.2006 (Пн) 15:54

Сообщение Zubik » 27.08.2006 (Вс) 21:33

Забыл добавить, что провайдер у меня следующий:

Set cn = New ADODB.Connection
cn.ConnectionString = _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & "db.mdb"

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 27.08.2006 (Вс) 21:58

Ты еще забыл добавить, как открываешь рекордсет. Возможно, используется серверный курсор.
Если рекордсет только для чтения, открывай так:
Код: Выделить всё
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient
rs.CursorType = adOpenStatic
rs.LockType = adLockReadOnly
rs.Open SQL, cn 'где SQL - Текст запроса

Сортировка работает.
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

Zubik
Новичок
Новичок
 
Сообщения: 40
Зарегистрирован: 07.08.2006 (Пн) 15:54

Сообщение Zubik » 27.08.2006 (Вс) 22:06

Спасибо большое

Zubik
Новичок
Новичок
 
Сообщения: 40
Зарегистрирован: 07.08.2006 (Пн) 15:54

Сообщение Zubik » 27.08.2006 (Вс) 22:10

Вот ещё какой вопрос.
Подскажите, как правильно работать с ADO.

Правильно ли каждый раз открывать рекордсет, потом делать например добавление записи, сортировку или ешо чонить, а потом его закрывать?
Т.е. получается что перед каждым действием я делаю Open а вконце Close.

Или нужно подругому?

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 27.08.2006 (Вс) 22:17

Наверное, зависит от количества Open/Close. Если это делается эпизодически при работе с приложением (например, открыл справочник, подредактировал, закрыл), то это нормальная ситуация.
Другое дело, если открытие/закрытие рекордсета происходит в цикле -- такого по возможности следует избегать.
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

    TopList  
cron