crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в OLE DB провайдеры
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
a_goodgirl Дата 30.6.2010, 15:30
  жаль, что никто не ответил. на гугленье ушло полдня, однако результат есть!

#include <atlbase.h>
#include <atldbcli.h>  

QStringList OLEDBproviders()
  {
    QStringList list;
    CoInitialize(NULL);
    {
      CEnumerator rs;
      rs.Open();
      while (rs.MoveNext() == S_OK)
        list << QString::fromUtf16(rs.m_szName);
    }
    CoUninitialize();
    return list;
  };
a_goodgirl Дата 30.6.2010, 13:34
  Нужно получить список OLE BD провайдеров в системе:
вот такую ссылку удалось нагуглить:
http://www.sql.ru/forum/actualthread.aspx?tid=714578

Там используется OleDbEnumerator.

Честно говоря, ничего не понятно. Как использовать это в С++? (или может быть можно получить список OLE BD провайдеров с помощью Qt)?

цель получения списка провайдеров OLEDB в том числе такая:

в частности, для ACCESS есть формат mdb для старого (2003) и accdb (2007). Для них используются разные провайдеры в connection string.
Microsoft.Jet.OLEDB.4.0
Microsoft.ACE.OLEDB.12.0

Алгоритм такой:
- получаем список провайдеров
- если выбран тип ACCESS, в зависимости от наличия провайдеров, формируется фильтр для выбора файлов (mdb или mdb, accdb)
- более новый провайдер добавляется в строку connection string.
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 19.4.2024, 0:04