2012-11-29 2 views
0

У нас есть существующее соединение ODBC (например, устаревший продукт, который уже связан с базой данных, а также может возвращать дескриптор соединения ODBC), и мы хотим обернуть этот дескриптор соединения через ADO.net. Затем наш пользователь вторичной разработки может использовать эту библиотеку-оболочку ADO.net для доступа к базе данных.Можно ли использовать ADO.net для переноса существующего ODBC-соединения?

Как бы это сделать?

ответ

0

Да. У ADO.NET есть поставщик ODBC, и на самом деле это предпочтительный способ использования ADO.NET в нейтральной базе данных, поскольку OleDb не хватался, как надеялся MS.

Код: http://msdn.microsoft.com/en-us/library/system.data.odbc.aspx

+0

Не могли бы вы предоставить более подробную информацию? как использовать существующий соединитель соединения? кажется, что конструкторы odbc ADO.net имеют только два следующих параметра: OdbcConnection() и OdbcConnection (String), для второго требуется строка соединения для запуска нового соединения вместо использования существующего соединения odbc. Как построить ADO.net с помощью существующего соединения? – StevenChaw

+0

Вы спрашиваете, как создать строку подключения? http://www.connectionstrings.com/dsn#net-framework-data-provider-for-odbc Или вы спрашиваете, как повторно использовать существующее соединение? Чтобы повторно использовать существующее соединение, закройте() все команды и считыватели. Затем повторно используйте соединение, пока оно еще находится в области видимости, и пока вы еще не вызывали .Close() или .Dispose(). – MatthewMartin

+0

Оба Нет, я спрашиваю, что у нас уже есть интерфейс, например GetODBCConnectionHandle, который может вернуть существующий подключенный дескриптор odbc из другой библиотеки C++/C. Тем не менее, я не хочу, чтобы мой целевой вызывающий пользователь использовал ODBC C++-программирование, а также мы не хотим, чтобы мой целевой вызывающий пользователь предоставлял строку соединения (даже я не хочу, чтобы они знали db/password и что-то еще), Я просто хочу обернуть это возвращенное соединение в классе/интерфейсе/объекте ADO.net. Вызывающий абонент просто использует интерфейс ADO.net для выполнения команды (не нужно сначала подключаться). Является ли это возможным? – StevenChaw

Смежные вопросы