VC6.0和VS2010获取Excel驱动

本文介绍了如何使用SQLGetInstalledDrivers函数在VC6.0与VS2010中查找已安装的ODBC驱动程序,并特别展示了如何在两种环境中寻找Excel驱动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SQLGetInstalledDirvers函数 在VC6.0中第一个参数是LPSTR 而在 VS2010中 是LPWSTR 区别在于是否为宽字符 在处理这个问题写法上稍微有一点区别


VC6.0:

char szBuf[2001]; 
WORD cbBufMax = 2000; 
WORD cbBufOut; 
char *pszBuf = szBuf;
 CString sDriver;
 // 获取已安装驱动的名称(涵数在odbcinst.h里)  
if (!SQLGetInstalledDrivers(szBuf, cbBufMax, &cbBufOut))
 return ""; 
// 检索已安装的驱动是否有Excel... 
 do 
{ 
	if (strstr(pszBuf, "Excel") != 0) 
	{ 
	//发现 !
        sDriver = CString(pszBuf);
	break; 
	} 
	pszBuf = strchr(pszBuf, '\0') + 1; 
} while (pszBuf[1] != '\0'); 
return sDriver;


VS2010:

	wchar_t szBuf[2001];
	wchar_t excl[] = L"Excel";
	WORD cbBufMax = 2000;
	WORD cbBufOut;
	wchar_t *pszBuf = szBuf;
	CString sDriver; // 获取已安装驱动的名称(涵数在odbcinst.h里)  
	if (!SQLGetInstalledDrivers((LPWSTR)szBuf, cbBufMax, &cbBufOut)) 
		return L""; 
	// 检索已安装的驱动是否有Excel...  
	do 
	{ 
		if (wcsstr(pszBuf, excl) != 0) 
		{ 
			//发现 ! 
			sDriver = CString(pszBuf); 
			break; 
		} 
		wchar_t ze = {'\0'};
		pszBuf = wcschr(pszBuf, '\0') + 1; 
	} while (pszBuf[1] != '\0');
	return sDriver;
char szBuf[2001]; 
WORD cbBufMax = 2000; 
WORD cbBufOut; 
char *pszBuf = szBuf;
 CString sDriver;
 // 获取已安装驱动的名称(涵数在odbcinst.h里)  
if (!SQLGetInstalledDrivers(szBuf, cbBufMax, &cbBufOut))
 return ""; 
// 检索已安装的驱动是否有Excel... 
 do 
	if (strstr(pszBuf, "Excel") != 0) 
	//发现 !
        sDriver = CString(pszBuf);
	break; 
	pszBuf = strchr(pszBuf, '\0') + 1; 
} while (pszBuf[1] != '\0'); 
return sDriver;

如果你想要的到更多的功能实现可以参考:http://www.vckbase.com/index.php/wv/494以及http://hi.baidu.com/xiao___q/item/1fd973b6f0a42f71254b0926。它们对Excel的操作做了进一步的类封装,比较完善

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值