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;
    }
    
}

解决方案 »

  1.   

    _ConnectionPtr的OpenSchema第一个参数为adSchemaTables可以查询所有的表名称
    参考
      

  2.   

    朋友能说具体点吗?我连接数据库是这样写的。
    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我没有用过呢能详细说说看吗?或者说下我的代码如何改动呢谢谢
      

  3.   

    上面给的连接有源码,CTRL+F查找OpenSchema就好了。
      

  4.   

    _ConnectionPtr的OpenSchema第一个参数为adSchemaTables可以查询所有的表名称
      

  5.   

    可能我没表达清楚哦我说的是如何得到excel的sheet名称,因为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$
    这个语句要用到呢最后的sheet1$能不能换成得到sheet的变量名
      

  6.   

    OpenSchema会返回一个记录集,分析这个记录集获取表名称就行了。