insert into [study2] select name,number,gender,age,grade from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=c:\\test.xsl',sheet1$
这样写是将c:\\test.xsl导入到表study2中。但问题来了。只有将要导入的EXCEL的工作表标签名(sheet)改为sheet1才能导入,但我这个只是测试。公司让导入的大量excel的工作表标签名都是随机的
请问怎么修改上面的SQL语句,实现任意工作表标签名都可以导入SQL2000中呢。。
或者在VC6.O中怎么实现获取工作表标签名呢如果我编写了一段程序要导入指定的EXCEL
要怎么改才能导入任意工作表标签名的的EXCEL呢try
{
CFileDialog dlg(TRUE,"","",OFN_HIDEREADONLY);
CString cs;
CString str;
if(dlg.DoModal()==IDOK)
{
str=dlg.GetPathName();
}
cs.Format(_T("insert into [study2] select name,number,gender,age,grade from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 8.0;HDR=YES;DATABASE=%s',sheet1$)"), str); m_pRs=m_pConn->Execute((_bstr_t)cs,NULL,adCmdText);
MessageBox("操作成功!");
m_pConn->Close();
}
catch(_com_error e)
{
CString errormessage;
//errormessage.Format(_T("执行SQL语句失败!\r\n错误信息:%s"),e.ErrorMessage());
errormessage.Format(_T("执行SQL语句失败!\r\n错误信息:%s"),(LPCTSTR)e.Description());
AfxMessageBox(errormessage);///显示错误信息
return;
}
}
这样写是将c:\\test.xsl导入到表study2中。但问题来了。只有将要导入的EXCEL的工作表标签名(sheet)改为sheet1才能导入,但我这个只是测试。公司让导入的大量excel的工作表标签名都是随机的
请问怎么修改上面的SQL语句,实现任意工作表标签名都可以导入SQL2000中呢。。
或者在VC6.O中怎么实现获取工作表标签名呢如果我编写了一段程序要导入指定的EXCEL
要怎么改才能导入任意工作表标签名的的EXCEL呢try
{
CFileDialog dlg(TRUE,"","",OFN_HIDEREADONLY);
CString cs;
CString str;
if(dlg.DoModal()==IDOK)
{
str=dlg.GetPathName();
}
cs.Format(_T("insert into [study2] select name,number,gender,age,grade from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 8.0;HDR=YES;DATABASE=%s',sheet1$)"), str); m_pRs=m_pConn->Execute((_bstr_t)cs,NULL,adCmdText);
MessageBox("操作成功!");
m_pConn->Close();
}
catch(_com_error e)
{
CString errormessage;
//errormessage.Format(_T("执行SQL语句失败!\r\n错误信息:%s"),e.ErrorMessage());
errormessage.Format(_T("执行SQL语句失败!\r\n错误信息:%s"),(LPCTSTR)e.Description());
AfxMessageBox(errormessage);///显示错误信息
return;
}
}
参考
HRESULT hRes;
_ConnectionPtr m_pConn;
CString TreeConnString;
TreeConnString=_T("Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=studytest;Data Source=SCJIALMD");
HRESULT hRes;
hRes=m_pConn.CreateInstance(_T("ADODB.Connection"));
m_pConn->ConnectionTimeout = 8;
hRes=m_pConn->Open(_bstr_t((LPCTSTR)TreeConnString),_T(""),_T(""),adModeUnknown);我是用OPEN方式打开连接的你说的OpenSchema我没有用过呢能详细说说看吗?或者说下我的代码如何改动呢谢谢
这个语句要用到呢最后的sheet1$能不能换成得到sheet的变量名