VC、sql sever、EXCEL

pengpeng321456 2010-12-01 10:10:40
我做了一个按钮是要将sql sever 的一个表中数据拷读取到excel中 翻阅了很多资料 网上也搜了 还是不会呀!!! 请各位高人指点一下吧 很是感激的
注:我用的是VC 访问数据库是ADO
...全文
54 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangshml 2011-11-07
  • 打赏
  • 举报
回复
同求,才接触VC连SQL
pengpeng321456 2010-12-02
  • 打赏
  • 举报
回复
sSql.Format(_T( "DRIVER={%s};DSN= ' ' ' ';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\ "%s\ ";DBQ=%s "),sDriver, sExcelFile, sExcelFile); 形成的字符串是什么?创建数据库的字符串 参数 sExcel是编辑框关联的CString类型数据那么sDriver是什么我猜不到!!!
sSql.Format(_T( "INSERT INTO %s (%s) VALUES(%s) "),sSheetName,strH, strV );
database.ExecuteSQL(sSql); 这个语句应该是在for (nItemIndex=0;nItemIndex <pList-> GetItemCount ();nItemIndex++) 它里边吧
艺博云天 2010-12-01
  • 打赏
  • 举报
回复
下面的代码中我是把 ClistCtrl 里的数据导到 EXCEL,你换成你的数据库的 RS 就可以了。看代码似乎是把 EXCEL 操作作为一种特殊的数据库操作
-----------------------------------------------------------
if(sExcelFile==_T("")||sExcelFile.Find(_T(".xls"))==0)
return;
// 创建进行存取的字符串
sSql.Format(_T("DRIVER={%s};DSN='''';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\"%s\";DBQ=%s"),sDriver, sExcelFile, sExcelFile);

// 创建数据库 (既Excel表格文件)
if( database.OpenEx(sSql,CDatabase::noOdbcDialog) )
{
// 创建表结构
int i;
LVCOLUMN columnData;
CString columnName;
int columnNum = 0;
CString strH;
CString strV;

sSql = "";
strH = "";
columnData.mask = LVCF_TEXT;
columnData.cchTextMax =100;
columnData.pszText = columnName.GetBuffer (100);
for(i=0;pList->GetColumn(i,&columnData);i++)
{
if (i!=0)
{
sSql = sSql + _T(",") ;
strH = strH + _T(",") ;
}
sSql = sSql + columnData.pszText +_T(" TEXT");
strH = strH + columnData.pszText +_T(" ");

columnName.ReleaseBuffer ();
columnNum = i+1;
}
CString sSql2;
sSql2.Format(_T("CREATE TABLE %s (%s)"),sSheetName,sSql);
TRY
{
database.ExecuteSQL(sSql2);
}
CATCH(CDBException,e){}
END_CATCH;


// 插入数据项
int nItemIndex;

for (nItemIndex=0;nItemIndex<pList->GetItemCount ();nItemIndex++)
{
strV = "";
for(i=0;i<columnNum;i++)
{
if (i!=0)
{
CString tmp=_T("");
tmp=strV;
strV.Format(_T("%s,"),tmp);
}
CString str=pList->GetItemText(nItemIndex,i);
if(str==_T(""))str=_T("-");
CString tmp=_T("");
tmp=strV;
strV.Format(_T("%s'%s'"),tmp,str);
}
sSql.Format(_T("INSERT INTO %s (%s) VALUES(%s)"),sSheetName,strH, strV );
database.ExecuteSQL(sSql);
}

}

// 关闭数据库
database.Close();

warningStr.Format(_T("导出EXCEL文件保存于\n%s!"),sExcelFile);
MessageBox(NULL,warningStr,_T("提示"),MB_OK|MB_ICONINFORMATION|MB_TOPMOST);
oyljerry 2010-12-01
  • 打赏
  • 举报
回复
ADO读入SQL SERVER的数据后,把数据放到内存中,然后通过excel的COM接口等写入数据
haogeai123 2010-12-01
  • 打赏
  • 举报
回复
找VC Excel怎么可能会没有呢?不过,这是找不到现成的了,改一下不就的了?

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧