如何在delphi6执行下列语句:e:\book1.xls为Excel文件
SELECT * 
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
  'Data Source="e:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 8.0')...[sheet1$]
1.在adoquery中认为字串中:为参数,如何设置.
2.用存储进程(sql2000):
CREATE PROCEDURE ttt (@str nvarchar(255))
AS
SET ANSI_WARNINGS ON 
SET ANSI_NULLS    ON execute sp_executesql @str
return
GO
---------------------------------------------------------------
execute ttt @str='SELECT * 
          FROM OpenDataSource( ''Microsoft.Jet.OLEDB.4.0'',
        ''Data Source="e:\book1.xls";User ID=Admin;Password=;
          Extended properties=Excel 8.0'')...[sheet1$]' 
系统报错:异类查询要求为连接设置 ANSI_NULLS 和 ANSI_WARNINGS 选项。这将确保一致的查询语义。请启用这些选项,然后重新发出查询。
请各位高手帮忙,多谢!!!

解决方案 »

  1.   

    我想问一下楼上的怎么我用你的方法的时候出现Sheet1$不是一个有效
    名称,请确认他不包含无效字符串或标点呢?
      

  2.   

    以前碰到这个问题,用动态查询搞定。
    一个例子:
    CREATE PROCEDURE [dbo].[名] @mdbname varchar(40) AS
    exec('insert into 表
    SELECT *
    FROM OPENROWSET(''Microsoft.Jet.OLEDB.4.0'',
       '''+@mdbname+''';''admin'';'''', Orders)')
      

  3.   

    adoquery1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\a.xls;Extended Properties=excel 8.0;Persist Security Info=False';