问题1、在vc中如何利用sql语句实现foxpro中的数据导入到sql server 2000中,表的结构完全相同。
问题2、在vc中如何利用sql server 2000中的bcp.exe将数据导入。
请各位高手帮帮忙。

解决方案 »

  1.   

    http://www2.ccw.com.cn/tips/9907/070903_04.asp
      

  2.   

    我想通过程序实现一些表的导入,怎么下手啊,分别连上两个数据库后,怎么进行操作啊,谁能提供点资料不?多谢!!  
    ---------------------------------------------------------------  
     
    #import  "C:\\Program  Files\\Microsoft  SQL  Server\\80\\tools\\binn\\dtspkg.dll"  \  
               rename("EOF","IsEOF")  rename("BOF","IsBOF")  
     
    然后看看生成的tlh和tli文件  
     
    里面有DTS的一些冬冬  
     
    可以先用sql  server自带的工具生成包文件,再在自己的程序里面运行  
    也可以看看sql  server里面联机帮助  
    里面有vb的例子  
    #import  "C:\\Program  Files\\Microsoft  SQL  Server\\80\\tools\\binn\\dtspkg.dll"  \  
               rename("EOF","IsEOF")  rename("BOF","IsBOF")  
     
    void  CChildView::OpenDtsFile(CString  strPathName)  
    {  
               //企业管理器//数据转换服务//本地包//另存为DTS文件  
               DTS::_Package2Ptr  m_pPackage2;  
               DTS::TaskPtr            m_pTask;  
               DTS::StepPtr          m_pStep;  
               DTS::ExecutePackageTaskPtr  m_pExeTask;  
               try  
               {  
                           m_pPackage2.CreateInstance(__uuidof(DTS::Package2));  
                           m_pPackage2->FailOnError=true;  
                           m_pStep=m_pPackage2->Steps->New();  
                           m_pTask=m_pPackage2->Tasks->New(_bstr_t("DTSExecutePackageTask"));  
                           m_pExeTask=m_pTask->CustomTask;  
                           m_pExeTask->FileName=_bstr_t(strPathName);  
                           m_pExeTask->Name=_bstr_t("ExePkgTask");  
                             
                           m_pStep->TaskName=m_pExeTask->Name;  
                           m_pStep->Name=_bstr_t("ExePkgStep");  
                           m_pStep->ExecuteInMainThread=true;  
                             
                           m_pPackage2->Steps->Add(m_pStep);  
                           m_pPackage2->Tasks->Add(m_pTask);  
                             
                           m_pPackage2->Execute();  
                             
                             
                           CString  strMsg;  
                           strMsg.Format("%s,数据转换%d个任务,%d个步骤成功",  
                                       strPathName,m_pPackage2->Tasks->Count,m_pPackage2->Steps->Count);  
                           AfxMessageBox(strMsg);  
                           m_pExeTask=NULL;  
                           m_pTask.Release();  
                           m_pTask=NULL;  
                           m_pStep.Release();  
                           m_pStep=NULL;  
                           m_pPackage2.Release();  
                           m_pPackage2=NULL;  
     
               }  
               catch(_com_error  &e)  
               {  
                           AfxMessageBox(_bstr_t(e.Description()));  
               }  
     
     
    -----------------------------------------------------  
    上面是根据联机帮助里面VB代码的转换过来的  
    里面还有其他dll  
    Microsoft  DTSPackage  Object  Library  Any  DTS  object  or  feature    
    dtspkg.dll    
    Microsoft  DTSDataPump  Scripting  Object  Library  Any  transformation  supplied  with  SQL  Server  or  any  DTS  scripting  object  
     dtspump.dll    
    Microsoft  DTS  Custom  Tasks  Object  Library  The  Message  Queue  task,  the  File  Transfer  Protocol  task  or  the  Dynamic  Properties  task    
    custtask.dll    
    搜索一下就出来了  
      

  3.   

    1.只要使用 sql server 的系统存储过程就可以完成了
      

  4.   

    或者 SQL Server 中
    INSERT INTO opendatasource( 'Microsoft.Jet.OLEDB.4.0','Data Source="c:\doc\s.dbf)... tb(field1,field2,field3,field4,field5,field6)SELECT sfield1,sfield2,sfield3,sfield4,sfield5,sfield6 FROM sqltablename