大侠们,下面是一位前辈提出过的问题,我现在也遇到一模一样的问题,请各位大侠帮帮忙啊!给详细指导一下啦!在线等,谢谢!
*********************************************************************************************
这段代码CDatabase对Excel追加记录不成功
发现这样一个问题:只能对excel进行一次写操作,再次运行写记录时就不成功,
只有把excel表手动删除,再运行程序,才能写进去,然后再运行写记录又不成功了,又得删除excel表
请问是什么原因?怎么解决??(用过CSpreadSheet封闭的类,去发现没有办法写数字,也不懂)
TRY
{
// 创建进行存取的字符串
sSql.Format("DRIVER={%s};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\"%s\";DBQ=% s",sDriver, sExcelFile, sExcelFile);
// 创建数据库 (既Excel表格文件)
if( database.OpenEx(sSql,CDatabase::noOdbcDialog) )//初始化数据库对象,有点像" 打开"
{
// 创建表结构(文件名、值)
sSql = "CREATE TABLE Exceldemo (FileName TEXT,HashValue NUMBER)";
database.ExecuteSQL(sSql);
// 插入数值
// sSql = "INSERT INTO Exceldemo (FileName,HashValue) VALUES ('%s',%d),Filename,b";
sSql.Format("INSERT Into Exceldemo (FileName,HashValue) VALUES ('%s',% d)",Filename,b);//注意 ('%s',%d)"格式
database.ExecuteSQL(sSql);
sSql = "INSERT INTO Exceldemo (FileName,HashValue) VALUES ('楼兰',22)";
database.ExecuteSQL(sSql);
}
// 关闭数据库
database.Close();
AfxMessageBox("Excel文件写入成功!");
}
CATCH_ALL(e)
{
TRACE1("Excel驱动没有安装: %s",sDriver);
}
END_CATCH_ALL;****************************************************************************************************
*********************************************************************************************
这段代码CDatabase对Excel追加记录不成功
发现这样一个问题:只能对excel进行一次写操作,再次运行写记录时就不成功,
只有把excel表手动删除,再运行程序,才能写进去,然后再运行写记录又不成功了,又得删除excel表
请问是什么原因?怎么解决??(用过CSpreadSheet封闭的类,去发现没有办法写数字,也不懂)
TRY
{
// 创建进行存取的字符串
sSql.Format("DRIVER={%s};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\"%s\";DBQ=% s",sDriver, sExcelFile, sExcelFile);
// 创建数据库 (既Excel表格文件)
if( database.OpenEx(sSql,CDatabase::noOdbcDialog) )//初始化数据库对象,有点像" 打开"
{
// 创建表结构(文件名、值)
sSql = "CREATE TABLE Exceldemo (FileName TEXT,HashValue NUMBER)";
database.ExecuteSQL(sSql);
// 插入数值
// sSql = "INSERT INTO Exceldemo (FileName,HashValue) VALUES ('%s',%d),Filename,b";
sSql.Format("INSERT Into Exceldemo (FileName,HashValue) VALUES ('%s',% d)",Filename,b);//注意 ('%s',%d)"格式
database.ExecuteSQL(sSql);
sSql = "INSERT INTO Exceldemo (FileName,HashValue) VALUES ('楼兰',22)";
database.ExecuteSQL(sSql);
}
// 关闭数据库
database.Close();
AfxMessageBox("Excel文件写入成功!");
}
CATCH_ALL(e)
{
TRACE1("Excel驱动没有安装: %s",sDriver);
}
END_CATCH_ALL;****************************************************************************************************
解决方案 »
- MFC QQ聊天框中 上方的功能图标是如何实现的
- 周六周日劳动仲裁部门休息吗?兼散分!
- 下面内容怎么加密的?
- winsock2.0编程(c++)一个简单的浏览器程序,请高手指教
- 深圳易思博网络软件公司,有谁了解这里?
- 资源编辑与resource.h的生成
- 这段代码什么意思?大家帮忙看看
- 两个问题
- 请教高手:怎样通过网络将一个CRichEditView上的内容(包括OLE中的)传到另一个CRichEditView上显示出来?提示、方法都可——我不知从哪入
- 菜问题:如何将STRINGTABLE的文本直接赋值给STATIC TEXT?(20分)
- COM对象与其基对象以及子对象的一些疑问?
- IO完成端口+线程池的应用(终于有点明白了,大家帮看下哪里写的不合理
sSql = "CREATE TABLE Exceldemo (FileName TEXT,HashValue NUMBER)";
database.ExecuteSQL(sSql);
这句出现异常,因为已经有了Exceldemo表应该先判断一下是否Exceldemo表,有这个表时直接往里写数据就行了你可以调试一下,建好表后,第二次运行把上面两句注释掉,就追加数据成功了