各位大拿好,最近使用odbc对execl操作出现了问题,却一直没有找到解决办法,希望有人能够帮助看看,谢谢各位了。
事情是这样,以前是可以用的,电脑的win10系统升级了后,使用的wps也升级了。没有装微软的execl.
出现了如下错误:

非法的连接串属性FIRSTROWHASNAMES
非法的连接串属性CREATE_DB
非法的连接串属性FIRSTROWHASNAMES
非法的连接串属性CREATE_DB
非法的连接串属性FIRSTROWHASNAMES
非法的连接串属性CREATE_DB
非法的连接串属性FIRSTROWHASNAMES
非法的连接串属性CREATE_DB
非法的连接串属性FIRSTROWHASNAMES
部分代码如下:
if (m_bExcel) // If file is an Excel spreadsheet
{
m_Database = new CDatabase;
GetExcelDriver();
m_sDsn.Format(L"DRIVER={%s};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=%s;DBQ=%s", m_sExcelDriver, m_sFile, m_sFile);
if (Open())
{
if (m_bBackup)
{
if ((m_bBackup) && (m_bAppend))
{
CString tempSheetName = m_sSheetName;
m_sSheetName = L"CSpreadSheetBackup";
m_bAppend = false;
if (!Commit())
{
m_bBackup = false;
}
m_bAppend = true;
m_sSheetName = tempSheetName;
m_dCurrentRow = 1;
}
}
}
}
在执行Open()时出的错,open函数如下:
bool CSpreadSheet::Open()
{
if (m_bExcel) // If file is an Excel spreadsheet
{
BOOL bOK = m_Database->OpenEx(m_sDsn, CDatabase::noOdbcDialog);
// Open Sheet
m_rSheet = new CRecordset( m_Database );
m_sSql.Format(L"SELECT * FROM [%s$A1:IV65536]", m_sSheetName);
try
{
m_rSheet->Open(CRecordset::forwardOnly, m_sSql, CRecordset::readOnly);
}
catch(...)
{
CString csErr = GetLastError();
delete m_rSheet;
m_rSheet = NULL;
m_Database->Close();
return false;
}(部分代码)