CFuncListCtrl& theCtrl = funcList;
CHeaderCtrl* hdCtrl=theCtrl.GetHeaderCtrl();
char text[256];
int hCount=hdCtrl->GetItemCount();
HDITEM hCol;
CString str[50];
for(int i=2;i<hCount;i++)
{
memset(text,0,sizeof(text));
hCol.pszText=text;
hCol.cchTextMax=sizeof(text);
hCol.mask=HDI_TEXT;
hdCtrl->GetItem(i,&hCol);
str[i-2].Format("%s",hCol.pszText);
}
BOOL bFileExist = FALSE;
CString tmp;
FILE *fp;
fp = fopen(strFile, "r");
if (fp != NULL)
{
fclose(fp);
remove(strFile);
}
CDatabase database;
CString sDriver = "MICROSOFT EXCEL DRIVER (*.XLS)"; // Excel安装驱动
CString sSql;
CString sSql1;
BOOL bResult;
int n;
TRY
{
// 创建进行存取的字符串
sSql.Format("DRIVER={%s};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=/"%s/";DBQ=%s",sDriver, strFile, strFile);
// 创建数据库 (既Excel表格文件)
if( database.OpenEx(sSql,CDatabase::noOdbcDialog) )
{
// 创建表结构
if (!bFileExist)
{
//sSql = "CREATE TABLE 操作日志(操作用户 TEXT, 操作时间 TEXT, 操作事件 TEXT, 操作结果 TEXT)";
sSql1 = "INSERT INTO 日志报表 (";
sSql = "CREATE TABLE 日志报表 (";
for(i=0;i<hCount-2;i++)
{
n=str[i].Find("(");
if(n>=0)
str[i]=str[i].Left(n);
sSql+=str[i];
sSql1+=str[i];
if(i<hCount-3)
{
sSql+=" TEXT, ";
sSql1+=", ";
}
else
{
sSql+=" TEXT";
}
}
sSql+=")";
sSql1+=")";
database.ExecuteSQL(sSql);
}
for(i=0;i<theCtrl.GetItemCount();i++)
{
//sSql = "INSERT INTO 操作日志 (操作用户,操作时间,操作事件,操作结果) ";
sSql = sSql1 + " VALUES ('";
for(int j=0;j<hCount-2;j++)
{
str[j]=theCtrl.GetItemText(i,j+2);
sSql+=str[j];
if(j<hCount-3)
sSql += "','";
}
sSql+= "')";
database.ExecuteSQL(sSql);
}
}
// 关闭数据库
database.Close();
bResult = TRUE;
}
CATCH_ALL(e)
{
// TRACE1("Excel驱动没有安装: %s",sDriver);
LPVOID lpMsgBuf;
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
(LPTSTR) &lpMsgBuf,
0,
NULL
);
// MessageBox( (LPCTSTR)lpMsgBuf);//whr050917 去掉错误调试信息
// Free the buffer.
LocalFree( lpMsgBuf );
database.Close();
bResult = FALSE;
}
END_CATCH_ALL;
return ;