日期:2014-05-18  浏览次数:20524 次

SQLServer 导出Excel 报Microsoft JET Database Engine 找不到可安装的 ISAM
p_exporttb       @tbname= 'TR_P_Customer ',@path= 'c:\ ',@fname= 'aa.xls '    
    --*/      
    if       exists       (select       *       from       dbo.sysobjects       where       id       =       object_id(N '[dbo].[p_exporttb] ')       and       OBJECTPROPERTY(id,       N 'IsProcedure ')       =       1)      
    drop       procedure       [dbo].[p_exporttb]      
    GO      
       
    create       proc       p_exporttb      
    @tbname       sysname,   --要导出的表名,注意只能是表名/视图名      
    @path       nvarchar(1000),   --文件存放目录      
    @fname       nvarchar(250)= ' '   --文件名,默认为表名      
    as      
    declare       @err       int,@src       nvarchar(255),@desc       nvarchar(255),@out       int      
    declare       @obj       int,@constr       nvarchar(1000),@sql       varchar(8000),@fdlist       varchar(8000)      
       
    --参数检测      
    if       isnull(@fname, ' ')= ' '   set       @fname=@tbname+ '.xls '      
       
    --检查文件是否已经存在      
    if       right(@path,1) <> '\ '       set       @path=@path+ '\ '      
    create       table       #tb(a       bit,b       bit,c       bit)      
    set       @sql=@path+@fname      
    insert       into       #tb       exec       master..xp_fileexist       @sql      
       
    --数据库创建语句      
    set       @sql=@path+@fname      
    if       exists(select       1       from       #tb       where       a=1)      
    set       @constr= 'DRIVER={Microsoft       Excel       Driver       (*.xls)};DSN= ' ' ' ';READONLY=FALSE '      
                    + ';CREATE_DB= " '+@sql+ ' ";DBQ= '+@sql      
    else      
    set       @constr= 'Provider=Microsoft.J