Страница: 1 |
Страница: 1 |
Вопрос: adodb и сортировка
Добавлено: 21.06.07 18:13
Автор вопроса: DINaz
Парни, туплю уж полдня...
В чем прикол, подскажите?
Есть база аксесс
VB60
msado 2.8
создаю подключение к базе
conBase.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + sDBPath + ";Persist Security Info=False"
conBase.Open
затем
открываю рекордсет и хочу его отсортировать
Dim xxx As New ADODB.Recordset
xxx.Open "select * from blancs", conBase, adOpenKeyset, adLockOptimistic
xxx.Sort = "ZID"
кидает такую ошибку: текущий проводник не поддерживает интерфейсы сортировки и фильтрации...
Чего ему не хватает??
За ранее благодарен...
Ответы
Всего ответов: 9
Номер ответа: 1
Автор ответа:
EUGY
Вопросов: 0
Ответов: 454
Профиль | | #1
Добавлено: 22.06.07 11:12
conBase.CursorLocation = adUseClient
Номер ответа: 2
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #2
Добавлено: 22.06.07 12:23
Вероятно под проводником имеется ввиду OKEDB-драйвер базы. Почему бы тебе не отсортировать рекордсет сразу одним запросом?
Номер ответа: 3
Автор ответа:
EUGY
Вопросов: 0
Ответов: 454
Профиль | | #3
Добавлено: 23.06.07 01:46
Не найдено ни одного документа, соответствующего запросу OKEDB-драйвер базы.
вопрос был:
Номер ответа: 4
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #4
Добавлено: 25.06.07 10:54
оЧеПЯтка вышка потомучт OLEDB разумеется Иными словами в целом ADO сортировать методом .Sort может, но этод метод не работает с драйвером базы данных, который указан в строке подключения. Также привел пример решения указанной задачи, если что. Что не устраивает?
Номер ответа: 5
Автор ответа:
DINaz
Вопросов: 2
Ответов: 6
Профиль | | #5
Добавлено: 10.07.07 15:35
Всем привет. Только приехал из отпуска
Собстна, sql рулит, но мне надо динамически менять сортировку. Собствнно, adodb - только транспорт для truedbgrid. Так что, думал, что можно сделать сортировку намного проще, чем каждый раз убивать adodb, создавать его с нужной сортировкой. Тем более, что в примере для truedb сортировка делалась через sort. Собственно, и делаю простой элемент - щелкаешь на название столбца, он и сортирует столбец... Ладно, завтра буду пробовать дальше.
Блин, как наворачиваешь на dbgrid изменение ширин колонок (конфигурацию) да и еще стили включаешь, плюс всякая хрень - начинает глюкать...
Номер ответа: 6
Автор ответа:
DINaz
Вопросов: 2
Ответов: 6
Профиль | | #6
Добавлено: 10.07.07 17:22
EUGY: conBase.CursorLocation = adUseClient
спасибо, помогло. Блин, сразу все заработало.
Я тормоз. Я чета решил, что понятие курсор относится к recordset-у, и что в рекордсете нужно устанавливать это свойство. Естествнно, в рекордсете нет такого свойства, так что я пошел дальше мучаться. Не знание основ мастдайского аксесса
Всем спасибо за помочь
Номер ответа: 7
Автор ответа:
ENIX
ICQ: 238819245
Вопросов: 9
Ответов: 76
Профиль | | #7
Добавлено: 17.07.07 15:50
Сори за оффтоп, DINaz читая твои посты заметил слово "truedbgrid". Возможно ли так чтобы ты скинул мне этот контрол т.к. кроме демки я найти не смог. Пока пользуюсь SGrid'om , но в нем приходится многое дописывать самому.
Отправить или дать ссылку можеш на enix@meta.ua
Заранее благодарен.
Номер ответа: 8
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #8
Добавлено: 17.07.07 20:47
Номер ответа: 9
Автор ответа:
DINaz
Вопросов: 2
Ответов: 6
Профиль | | #9
Добавлено: 23.07.07 10:11
Да нет.. он нормально поддержиует SQL, с помощью его и отсортировать... а привязки к всяким гридам - то так, для прикола
Все правильно, реально работает adodb, грид его только отоборажает. Но мне сам по себе adodb не нужен, он был выбран только потому, что с ним работает dbgid.
Кстати, с adUseClient тоже поимел ряд неприятностей. Стала появляться непонятная ошибка при попытке обновить строку таблицы следующим кодом:
Dim rsBlanc As New ADODB.Recordset
rsBlanc.Open "select * from advtmp", conBase, adOpenKeyset, adLockOptimistic
With rsBlanc
.MoveFirst
While Not .EOF
.Fields("zstatus" = GetAdvertStatus(.Fields("zcompid", .Fields("zcontrnum")
.Update
.MoveNext
Wend
End With
ошибка: неполный первычный ключ или обновляется слишком много строк.
Но обновляется ведь только одна строка? Раньше, когда стояло adUseServer, все было нормально. Таблица advTmp, в котороый вообще нет ключей - для временных данных. Пришлось добавить счетчик... Все заработало.