MFC使用ODBC向Excel写数据失败???
CTime time = CTime::GetCurrentTime(); //得到当前时间
CString strExcelFile;
// 时间格式转换
strExcelFile = time.Format(_T("D:\\%Y年%m月%d日%H:%M:%S.xls"));
// Excel安装驱动
CDatabase database;
CString sDriver = _T("MICROSOFT EXCEL DRIVER (*.XLS)");
// 要建立的Excel文件
//strExcelFile = L"C:\\demo.xls";
CString sSql;
TRY
{
// 创建进行存取的字符串
sSql.Format(_T("DRIVER={%s};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\"%s\";DBQ=%s"),
sDriver, strExcelFile, strExcelFile);
// 创建数据库 (既Excel表格文件)
if( database.OpenEx(sSql,CDatabase::noOdbcDialog) )
{
// 创建表结构(姓名、年龄)
sSql = L"CREATE TABLE Exceldemo (Name TEXT,Age NUMBER)";
database.ExecuteSQL(sSql);
// 关闭数据库
database.Close();
}
一运行就出现:
创建文件失败,
非法的连接串属性FIRSTROWHASNAMES
非法的连接串属性CREATE_DB
非法的连接串属性FIRSTROWHASNAMES
非法的连接串属性CREATE_DB
非法的连接串属性FIRSTROWHASNAMES
非法的连接串属性CREATE_DB
非法的连接串属性FIRSTROWHASNAMES
非法的连接串属性CREATE_DB
非法的连接串属性FIRSTROWHASNAMES
非法的连接串属性CREATE_DB
非法的连接串属性FIRSTROWHASNAMES
非法的连接串属性CREATE_DB
驱动程序的SqlSetConnectAttr失败
但是:如果我直接使用strExcelFile = ——T("C:\\demo.xls");就没问题,怎么回事?我估计问题出在strExcelFile = time.Format(_T("D:\\%Y年%m月%d日%H:%M:%S.xls"));我要的是按时间命名的Excel而不是固定的。
高手前辈们帮忙看看,谢谢大家,呵呵。