|
|
|
Проблема со сложными запросами через Jet.OLEDB.Provider
|
|||
|---|---|---|---|
|
#18+
Вводная. Пишется программка (C++), которая должна хранить данные в файлах .mdb (Access 2000). Достаточно быстро выяснилось, что запросы чуть сложнее "SELECT * FROM Table1" не обрабатываются. Начал разбираться и выяснилось, что даже просто при подключении к базе из оболочки (Visual Studio) такие запросы через "Jet 4.0 OLE DB Provider" не проходят (Unknown Error), а те же запросы при подключении к той же базе через "OLE DB Provider for ODBC Drivers" на ура. Чтоб было ясно о каких запросах идет речь. К примеру (синтаксис условен) table1 { id_string Int, string Text, id_language Int } table2 { id_language Int, language Text } // работает SELECT * FROM table1 AS t1 LEFT JOIN table2 AS t2 ON t1.id_language = t2.id_language // не работает через Jet 4.0 OLE DB Provider SELECT t1.string, t2.language FROM table1 AS t1 LEFT JOIN table2 AS t2 ON t1.id_language = t2.id_language Service Pack 8 на Jet Engine поставил - ничего не поменялось. Может есть у кого какие идейки или было подобное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2003, 14:40 |
|
||
|
Проблема со сложными запросами через Jet.OLEDB.Provider
|
|||
|---|---|---|---|
|
#18+
Так, идей ни у кого похоже нет. Попробуем от противного. У кого-нибудь работают вложенные запросы и запросы с LEFT.JOIN не по всем столбцам при обращении к базе Jet 4.0 (*.mdb, Access 2000) через Jet OLEDB Provider? Если работает опишите пожалуйста конфигурацию. (версии MDAC, Jet Engine и OleDb и прочего) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2003, 12:30 |
|
||
|
Проблема со сложными запросами через Jet.OLEDB.Provider
|
|||
|---|---|---|---|
|
#18+
Мы, как бы сказать по проще, в Акесе работаем. Там таких проблем нет, как и нет особых проблем со "сложными" запросами. Тебе скорей всего коллеги по С++ смогут помочь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2003, 12:38 |
|
||
|
Проблема со сложными запросами через Jet.OLEDB.Provider
|
|||
|---|---|---|---|
|
#18+
Ага, а C++'сники скажут, что они с базами не работают :) В том то и дело, что проблема вроде не связана с самим C++, а как-то связана с Provider'ом. Я беру любую программку для просмотра баз данных, например, что-то вроде blueshell Data Guy http://www.blueshell.com/EDown.asp, подключаюсь к базе ввожу запрос чуть посложнее - и фиг. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2003, 13:07 |
|
||
|
Проблема со сложными запросами через Jet.OLEDB.Provider
|
|||
|---|---|---|---|
|
#18+
Ну значит С++ атцтой (шутка :) Ну у меня есть примеры на С++ (открытие конекта, выполнение запроса) из MDAC SDK - могу помочь только этим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2003, 13:42 |
|
||
|
Проблема со сложными запросами через Jet.OLEDB.Provider
|
|||
|---|---|---|---|
|
#18+
А ошибочка меж тем похоже нашлась. Дело то оказалось в использовании слова "language" в качестве имени столбца, а слово это похоже в SQL зарезервировано для будущего использования. Но вот почему это вылезает только при использовании этого Jet OLEDB Provider и почему нельзя ругаться как-нибудь нормально, а не "Unspecified error: E_FAIL(0x80004005)"... Эх попадись мне эти разработчики под горячую руку, ведь часов 8 времени на поиски ушло, а такой пустяк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2003, 15:08 |
|
||
|
|

start [/forum/topic.php?fid=45&fpage=1714&tid=1677960]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
53ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 222ms |
| total: | 388ms |

| 0 / 0 |
