我用的是Delphi6,从Excel中往SQL Server中导出过程中出错,出错的情况是Excel中该列内容为空时,SQL Server中数据类型是datetime型,报错信息是“从字符串转换为datetime时发生语法错误”,如果Excel这一列中日期全部有内容就不会报错   如何能够解决当Excel中内容为空导入不报错的问题?
  
   本人只有5分,拿不出手,但我也是倾囊而出了,希望高人不吝赐教!感谢!

解决方案 »

  1.   

    唉,又是把excel导到数据库中:
    导文本:
    select * into tmp_Table from OpenRowset('MSDASQL','Driver={Microsoft Text Driver (*.txt; *.csv)};
    DefaultDir=D:\;','select * from tmp.txt')
    -------------------------------------------------------------------------
    导Execl:
    SELECT * into tmp_Table FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source=
    D:\ttt.xls;
    Extended Properties="Excel 5.0;HDR=Yes;";Persist Security Info=False')...页1$
    ---------------------------------------
    最方便了
      

  2.   

    这种方法没有用过,我在查询分析器里,写了语句:
    select *  from
    OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="C:\Documents and Settings\Administrator\桌面\test.xls";
    User ID=admin;Password=;Extended Properties=''Excel 5.0')...xactions但是执行的时候报错:
    已拒绝对 OLE DB 提供程序 'Microsoft.Jet.OLEDB.4.0' 的特殊访问。必须通过链接服务器来访问此提供程序。不知道如何链接服务器呢?
      

  3.   

    判断一下如果为空就不导入,如果sql中日期不能为空(可以在sql中设置一默认值) ,那就日期写入一个默认值就行了,