我想用MFC程序把数据库中数据写到Excel文件里
这期间用到SQLGetInstalledDrivers函数获得ODBC里面的驱动
不过怎么老是就一个SQL Server这么一个驱动被找到!
我确实在ODBC里面添加的有其它驱动 例如:Excel驱动
不过就是用SQLGetInstalledDrivers找不到
代码类似这个....
CString sDriver;//save excel Driver
char szBuf[2000];
WORD cbBufMax=2001;
WORD cbBufOut;
char *pszBuf=szBuf;
if(!SQLGetInstalledDrivers(LPWSTR(szBuf),cbBufMax,&cbBufOut))
return;
do
{
if(strstr(pszBuf,"Excel")!=0)
{
sDriver=CString(pszBuf);
break;
}
pszBuf=strchr(pszBuf,'\0')+1;
}
while(pszBuf[1]!='\0');
if(sDriver.IsEmpty())
{
MessageBox(_T("No Excel Driver! Plase Install!"));
return;
}
这期间用到SQLGetInstalledDrivers函数获得ODBC里面的驱动
不过怎么老是就一个SQL Server这么一个驱动被找到!
我确实在ODBC里面添加的有其它驱动 例如:Excel驱动
不过就是用SQLGetInstalledDrivers找不到
代码类似这个....
CString sDriver;//save excel Driver
char szBuf[2000];
WORD cbBufMax=2001;
WORD cbBufOut;
char *pszBuf=szBuf;
if(!SQLGetInstalledDrivers(LPWSTR(szBuf),cbBufMax,&cbBufOut))
return;
do
{
if(strstr(pszBuf,"Excel")!=0)
{
sDriver=CString(pszBuf);
break;
}
pszBuf=strchr(pszBuf,'\0')+1;
}
while(pszBuf[1]!='\0');
if(sDriver.IsEmpty())
{
MessageBox(_T("No Excel Driver! Plase Install!"));
return;
}
CString GetExcelDriver()
{
wchar_t szBuf[2001];
wchar_t excl[] = L"Excel";
WORD cbBufMax = 2000;
WORD cbBufOut;
wchar_t *pszBuf = szBuf;
CString sDriver;
// 获取已安装驱动的名称(函数在odbcinst.h里)
if (!SQLGetInstalledDrivers(szBuf, cbBufMax, &cbBufOut))
return L"";
// 检索已安装的驱动是否有Excel...
// AfxMessageBox(CString(pszBuf));
do
{
if(wcsstr(pszBuf, excl) != 0)
{
//发现 !
sDriver = CString(pszBuf);
break;
}
wchar_t ze = {'\0'};
pszBuf = wcschr(pszBuf, ze) + 1;
}
while (pszBuf[1] != '\0');
return sDriver;
}我用的vs2008