|
"No such interface supported" error from object from Data Access Layer
|
|||
---|---|---|---|
#18+
Доброго времени суток! Возникла проблема, над которой бьюсь уже несколько дней :-( Причем до замены БД проблем не возникало. Имеется объект (А), начинающий транзакцию в MTS. Написан на VB6. Он вызывает другой объект (Б) в той же самой DLL. (Б) общается с БД. Вообщем классика из учебников. Так вот, если (Б) работает с MS SQL, то проблем нет. Мне понадобилось вместо MS SQL применить MS Access (ну понадобилось и все). В принципе такая операция - простая смена строки подключения + некоторые настройки свойств. Но это не работает! Пишет в логах - No such interface supported и хоть тресни! При отладке добрался до источника - con.Open. Подскажите, люди добрые, что не так. Чувствую, что OLE DB, но при анализе запущенных процессов видно, что библиотеки ADO моя горе DLL запускает. ADO 2.6 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2003, 08:17 |
|
"No such interface supported" error from object from Data Access Layer
|
|||
---|---|---|---|
#18+
Чувствую, что OLE DB При создании ADO Connection последний проверяет исполнияется-ли он в рамках транзакции и поддерживаются ли транзакции провайдером. Если да то, через IResourceManager::Enlist данный ресурс включается в транзакцию. А вот если нет... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2003, 10:24 |
|
"No such interface supported" error from object from Data Access Layer
|
|||
---|---|---|---|
#18+
А вот если нет... Что если нет? Моя ошибка? Неужели тогда придется похоронить возможность использования MS Access в качестве DataBase? Действительно, если объект не включать в транзакцию, то все идет гладко. Но если объект включить в транзакцию, то начинаются проблемы... А включатть его все равно надо. Вся прелесть в том и состоит. Видимо придется работать через присоединенные сервера, больше выхода не вижу... Или есть способ? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2003, 11:41 |
|
"No such interface supported" error from object from Data Access Layer
|
|||
---|---|---|---|
#18+
Все! Ответ найден! Кузя, Спасибо!!! Начал я копать ADO и потом как блеснуло в памяти! Я же строку подключения передавал от Session("") и далее вглубь. Потом заставлял работать ADO напрямую с источником. Отсюда и все жуки... А решение совсем простое - через создание DSN в ODBC аплете (*.udl, кстати, не работают в контексте транзакции) Строка подключения получилась следующей: "DSN=Test;UID=" & Session("username") & ";PWD=" & Session("password") & ";OLE DB Services=-1" Вообщем, debutant открыл для себя еще одну бутылочку "Херши" :-) P.S. Кузьма, а где по умному такие тонкости для контуженных VB- программистов описываются (кроме MSDN конечно) или таким тонкостям только собственные шишки учат? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2003, 14:35 |
|
"No such interface supported" error from object from Data Access Layer
|
|||
---|---|---|---|
#18+
были шишки от граблей COM+, когда пытался понять, как ADO распознает транзакции - ведь напрямую то ничего не говорим ей, а SetAbort или SetComplete отрабатывает правильно. собственные шишки учат :) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2003, 15:03 |
|
"No such interface supported" error from object from Data Access Layer
|
|||
---|---|---|---|
#18+
Шишкастые головы - отличительная черта программистов. Довольно часто можно услышать жалобы парикмахеров на трудности, возникающие при стрижке программистов - машинки спотыкаются :-) Ну что, пойду дальше шишки набивать... Спасибо, До встречи на форуме! ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2003, 16:26 |
|
|
start [/forum/topic.php?fid=60&msg=32106417&tid=2171421]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 146ms |
0 / 0 |