Нужно получить список 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.
жаль, что никто не ответил. на гугленье ушло полдня, однако результат есть!
#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;
};
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)