问题描述
我的程序如下:_ApplicationExcelApp;WorkbookswbsMyBooks;_WorkbookwbMyBook;WorksheetswssMysheets;_WorksheetwsMysheet;RangergMyRge;//创建Excel2000服务器(启动Excel)if(!ExcelApp.CreateDispatch("Excel.Application",NULL))//??{AfxMessageBox("创建Excel服务失败!");exit(1);}ExcelApp.SetUserControl(true);ExcelApp.SetVisible(false);//利用模板文件建立新文档charpath[MAX_PATH];GetCurrentDirectory(MAX_PATH,path);CStringstrPath=path;strPath+="\template1";wbsMyBooks.AttachDispatch(ExcelApp.GetWorkbooks(),true);wbMyBook.AttachDispatch(wbsMyBooks.Add(_variant_t(strPath)));//得到WorksheetswssMysheets.AttachDispatch(wbMyBook.GetWorksheets(),true);//得到sheet1wsMysheet.AttachDispatch(wssMysheets.GetItem(_variant_t("sheet1")),true);rgMyRge.AttachDispatch(wsMysheet.GetCells(),true);set.MoveFirst();while(set.IsEOF()==FALSE){......//进行数据操作}我是想在数据操作之前先把数据库中的数据清空初始化,然后再进行操作,请问各位大虾该怎么加语句?最好在我的源程序上该
解决方案
解决方案二:
boolDataList::DeleteDataToAccess(_RecordsetPtrm_pRecordset,charTableName[],intindex)//删除某个表的1个数据//参数1为数据库文件的指针,参数2为要读取某个表的表名,第3个参数为要删除的数据的下标{DataListdata;try{charOpenFile[512]="SELECT*FROM";strcat(OpenFile,TableName);//字符串追加表名,表示打开这个表m_pRecordset.CreateInstance("ADODB.Recordset");m_pRecordset->Open(OpenFile,_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);for(inti=0;!m_pRecordset->adoEOF;++i){if(i==index){m_pRecordset->Delete(adAffectCurrent);//删除当前记录m_pRecordset->Update();m_pRecordset->Close();returntrue;}m_pRecordset->MoveNext();}}catch(_com_errore)///捕捉异常{AfxMessageBox(_T("读取数据库失败!来自DeleteDataToAccess"));///显示错误信息}m_pRecordset->Update();m_pRecordset->Close();returnfalse;}
这是我以前项目中做的一个删除Access数据库的一个类函数
解决方案三:
用这样的方法直接通过SQL来删除,效率比循环高出几个数量级...m_pRecordset->Open(_variant_t(_T("delete*fromTableName")),_variant_t((IDispatch*)m_pConnection->GetConnection(),true),CursorType,LockType,lOption);m_pRecordset->Update();
解决方案四:
上面的代码,不用执行Update();
解决方案五:
该回复于2012-02-11 19:58:30被版主删除
解决方案六:
if(i==index)///////////////这里的index指的是什么啊
解决方案七:
解决方案八:
引用5楼u013431663的回复:
if(i==index)///////////////这里的index指的是什么啊
第3个参数为要删除的数据的下标如果select出的数据是唯一的,这个index就是0