ODBC管理excel文件出错“数值字段溢出”
这俩天碰到一个头疼的事,就是excel文件有一种机制就是一列数据类型以前8行中包含数据为标准确定这一列记录的类型(字符型和数值型)。
可是当一列数据的前8行为空时,CRecordset recSet调用getfieldvalue函数读取这一列的数据是就都是空记录了(实际上第9行就有数值型数据)。
根据我反复的debug发现这应该和记录的类型有关系,所以想在第一行写入一个数值型数据,可是由于excel默认写入是字符型,所以写入第一行的也是字符型记录。求解!!!
sDsn.Format("DRIVER={%s};DSN='''';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB="%s";DBQ=%s", m_excelDriver, m_excelFileName, m_excelFileName);
database.OpenEx( sDsn, CDatabase::noOdbcDialog );// 打开数据库(即Excel文件)
// 设置读取的查询语句,查询表m_sheetName内的所有列
sSql = "SELECT * "
"FROM [" + m_sheetName + "$] ";
CRecordset recSet( &database );// 获取数据集
recSet.Open( CRecordset::snapshot, sSql, CRecordset::none );// 执行查询语句,读取表m_sheetName