BDE, ODBC драйвер до ACCESS, не работает ORDER BY
DATA LONGVARCHAR, // по-видимому BLOB
матюкнулся. BDE наверно то же
Ой, блина, перечитал пост - наверно не из-за этого
In the SQL-92 standard, an ORDER BY clause may only use result column names or numbers
как следует модифицировать запрос, чтобы заработало?
вот такой работает:
select page from document order by page
а вот такой нет:
select ident, data, page from document where ident='blabla' order by page
select ident, page from document order by page
работает
… order by 3
UPD: А может проблема в DATA?
Твоя вторая ошибка не про это ли как раз?
но ведь так работает:
select data, ident, page from document where ident='137'
а вот так - нет:
select data, ident, page from document where ident='137' order by page
и даже order by 3 не помогает
попробую сверить версии JET-а, может что и прояснится.
мб как раз проблема с сортировкой при наличии data?
именно. как наличие дополнительных полей в запросе может влиять на сортируемость?
Вот что-то нагуглилось: http://archives.postgresql.org/pgsql-general/1998-07/msg0031...
апгрейд джета не помогает. там есть какой-то хот-фикс для джета (windows2000-kb829558-x86-rus.exe) - тоже не помогает
Доступ к Access-у можно получить и не через ODBC, а через BDE, создав там алиас с драйвером MSACCESS. благо база в формате аксеса 2.0 и версия её точно не изменится.
производительность не требуется.
На одной машине я могу создать алиас и нормально с ним работать, на другой - алиас создаётся, но работать с базой нельзя: всё тот же "General SQL Error"
поиски про ошибку № -2147221164 ($80040154) приводят на сайт микрософта за апдейтами к джету. апдейты не помогают.
версии джета и дельфи на двух машинах совпадают.
есть одно "НО":
на машине, на которой не работает, стоит 2003 офис.
на той, на которой работает - стоит 2000 офис.
к этому есть другое "НО":
на машине MS Windows 2003 Server с 2003 офисом работает
select d.data, d.page from document d where ident='blabla' order by page
могу дать mdb-файл, желающие могут поупражнятся
хочу заметить, что у тебя способ не "через COM к Аксессу" - а "через COM к ODBC к Аксессу".
P.S. Ну поставь другую строку соединения - и будет ADO - просто я для dbf формата это писал
1) Используется ADO, connection string:
Provider=Microsoft.Jet.OLEDB.4.0;Mode=Read;Persist Security Info=False;Data Source=';
2) CursorLocation = clUseServer у ADOConnection и у ADOQuery
в такой конфигурации работает.
Странно, что при выставлении CursorLocation в другое значение ORDER BY перестаёт работать в запросах, возвращающих LOB-ы
Оставить комментарий
yolki
есть таблица document:следующий оператор вызывает исключение:
исключения такие:
если убрать "order by page" всё работает
аналогичные ошибки возникают при
щас ещё попробую погуглить по ошибкам BDE, но может, кто уже сталкивался?