首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

SQLServer 导出Excel 报Microsoft JET Database Engine 找不到可安装的 ISAM解决方法

2012-01-19 
SQLServer 导出Excel 报Microsoft JET Database Engine 找不到可安装的 ISAMp_exporttb@tbname TR_P_Cust

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.Jet.OLEDB.4.0;Extended       Properties= "Excel       5.0;HDR=YES '      


    + ';DATABASE= '+@sql+ ' " '      
       
    --连接数据库      
    exec       @err=sp_oacreate       'adodb.connection ',@obj       out      
    if       @err <> 0       goto       lberr      
       
    exec       @err=sp_oamethod       @obj, 'open ',null,@constr      
    if       @err <> 0       goto       lberr      
       
    --创建表的SQL      
    select       @sql= ' ',@fdlist= ' '      
    select       @fdlist=@fdlist+ ', '+a.name      
    ,@sql=@sql+ ',[ '+a.name+ ']       '      
    +case       when       b.name       in( 'char ', 'nchar ', 'varchar ', 'nvarchar ')       then      
        'text( '+cast(case       when       a.length> 255       then       255       else       a.length       end       as       varchar)+ ') '      
    when       b.name       in( 'tynyint ', 'int ', 'bigint ', 'tinyint ')       then       'int '      
    when       b.name       in( 'smalldatetime ', 'datetime ')       then       'datetime '      
    when       b.name       in( 'money ', 'smallmoney ')       then       'money '      
    else       b.name       end      
    FROM       syscolumns       a       left       join       systypes       b       on       a.xtype=b.xusertype      
    where       b.name       not       in( 'image ', 'text ', 'uniqueidentifier ', 'sql_variant ', 'ntext ', 'varbinary ', 'binary ', 'timestamp ')      
    and       object_id(@tbname)=id      
    select       @sql= 'create       table       [ '+@tbname      
    + ']( '+substring(@sql,2,8000)+ ') '      
    ,@fdlist=substring(@fdlist,2,8000)      
       
    exec       @err=sp_oamethod       @obj, 'execute ',@out       out,@sql      
    if       @err <> 0       goto       lberr      


       
    exec       @err=sp_oadestroy       @obj      
       
    --导入数据      
    set       @sql= 'openrowset( ' 'MICROSOFT.JET.OLEDB.4.0 ' ', ' 'Excel       5.0;HDR=YES      
    ;DATABASE= '+@path+@fname+ ' ' ',[ '+@tbname+ '$]) '      
       
    exec( 'insert       into       '+@sql+ '( '+@fdlist+ ')       select       '+@fdlist+ '       from       '+@tbname)      
       
    return      
       
    lberr:      
    exec       sp_oageterrorinfo       0,@src       out,@desc       out      
    lbexit:      
    select       cast(@err       as       varbinary(4))       as       错误号      
    ,@src       as       错误源,@desc       as       错误描述      
    select       @sql,@constr,@fdlist      
    go    

报这个错   0x80004005Microsoft   JET   Database   Engine找不到可安装的   ISAM。  



[解决办法]
看不懂~
[解决办法]
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & Me.ofdSelectExcel.FileName & ";Extended Properties= " "Excel 8.0;HDR=Yes " " "

引用里再添加一下就OK了
[解决办法]
检查 ' 'MICROSOFT.JET.OLEDB.4.0 ' ', ' 'Excel 5.0 和你安装的Excel版本是否一致
[解决办法]
解决-找不到可安装的 ISAM
今天在连接access数据库的时候出现:找不到可安装的 ISAM
从来没有见过这样的错误信息,于是到google里搜索一下,之后发现原来是在连接的时候连接字符串出了问题
data source 应该分开写。
http://yuanweiming84.cnblogs.com/archive/2005/10/07/249701.aspx
[解决办法]
http://www.connectionstrings.com/
连接字符串 你看下你的是否都正确
[解决办法]

热点排行