VC中,用ODBC的excel驱动写xls表的时候,不能在程序外面打开文件?该如何处理
VC中,用ODBC的excel驱动写xls表的时候,不能在程序外面打开文件?
类如下:
class CODBC_RWExcel
{
public:
CODBC_RWExcel();
virtual ~CODBC_RWExcel();
/*函数功能:创建数据库及数据表
**DbName:要创建的数据库的名称
**CreateTable:创建的数据表的sql语法,形式为"CREATE TABLE MyTable(Sno TEXT, Sname TEXT, Sex VARCHAR);"
*/
void CreateExcel_and_Table(CString DbName, CString CreateTableSql);
/*函数功能:将数据写入到数据库
**DbName:要写入的数据库名称
*/
void WriteToExcel(CString DbName, CString Sql);
/*函数功能:从数据库中读取数据,每次读取一个字段并存储在对象的item_str容器中
**DbName:要写入的数据库名称
**Sql:插入数据的sql语句,形式为"SELECT Sname FROM MyTable;"
*/
void ReadFromExcel(CString DbName, CString Sql);
/*函数功能:获取ODBC中Excel驱动名称
*/
CString GetExcelDriver();
public:
vector<CString> item_str; //存储从数据库中读取的数据
};
我想程序在写xls表的时候,手动到文件目录下打开xls表格,但是这个时候程序报错,难道不能打开吗?如果想打开的话怎么办呢?谢谢
------解决方案--------------------
不清楚说的啥意思,如果用程序访问了,必须用程序关闭了文件,才能手动打开文件了.
.你肯定没有关闭.
------解决方案--------------------
可能odbc已经以独占方式打开xls文件的,或者你拟以独占方式打开已被open的文件才会出错。
试试3楼的方法,或者直接用COM来操作execl。
------解决方案--------------------
类如下:
class CODBC_RWExcel
{
public:
CODBC_RWExcel();
virtual ~CODBC_RWExcel();
/*函数功能:创建数据库及数据表
**DbName:要创建的数据库的名称
**CreateTable:创建的数据表的sql语法,形式为"CREATE TABLE MyTable(Sno TEXT, Sname TEXT, Sex VARCHAR);"
*/
void CreateExcel_and_Table(CString DbName, CString CreateTableSql);
/*函数功能:将数据写入到数据库
**DbName:要写入的数据库名称
*/
void WriteToExcel(CString DbName, CString Sql);
/*函数功能:从数据库中读取数据,每次读取一个字段并存储在对象的item_str容器中
**DbName:要写入的数据库名称
**Sql:插入数据的sql语句,形式为"SELECT Sname FROM MyTable;"
*/
void ReadFromExcel(CString DbName, CString Sql);
/*函数功能:获取ODBC中Excel驱动名称
*/
CString GetExcelDriver();
public:
vector<CString> item_str; //存储从数据库中读取的数据
};
我想程序在写xls表的时候,手动到文件目录下打开xls表格,但是这个时候程序报错,难道不能打开吗?如果想打开的话怎么办呢?谢谢
------解决方案--------------------
不清楚说的啥意思,如果用程序访问了,必须用程序关闭了文件,才能手动打开文件了.
.你肯定没有关闭.
------解决方案--------------------
可能odbc已经以独占方式打开xls文件的,或者你拟以独占方式打开已被open的文件才会出错。
试试3楼的方法,或者直接用COM来操作execl。
------解决方案--------------------