CREATE PROCEDURE ACCESSTOSQL  ASdeclare 
  @sDataSource as varchar(100) ,
 @strSql as varchar(800)
set nocount on
SET ANSI_NULLS  ON
SET ANSI_WARNINGS ON 
SET @sDataSource ='C:\TEMP\ICCARD.MDB'
set @strSql='INSERT INTO AdvanceList ( ListID )
             SELECT ListID FROM OpenDataSource( ''Microsoft.Jet.OLEDB.4.0'', ''Data Source="' + @sDataSource + '";User ID=Admin; Jet OLEDB:Database Password =ICCARD'')...AdvanceList '
execute(@strSql)
set nocount oFF
SET ANSI_NULLS  OFF
SET ANSI_WARNINGS OFF 
GO

解决方案 »

  1.   

    是静态和动态的问题:
    CREATE PROCEDURE ACCESSTOSQL  ASdeclare 
      @sDataSource as varchar(100) ,
     @strSql as varchar(800)
    BEGIN TRAN
    set nocount on
    SET @sDataSource ='C:\TEMP\ICCARD.MDB'--AdvanceListset @strSql='SET ANSI_NULLS  ON 
    SET ANSI_WARNINGS ON 
    INSERT INTO AdvanceList ( ListID )
                 SELECT ListID FROM OpenDataSource( ''Microsoft.Jet.OLEDB.4.0'', ''Data Source="' + @sDataSource + '";User ID=Admin; Jet OLEDB:Database Password =ICCARD'')...AdvanceList 
    SET ANSI_NULLS  OFF
    SET ANSI_WARNINGS OFF '
    execute(@strSql)set nocount oFF
    GO
      

  2.   

    我试了一下 把set  XACT_ABORT on
    SET ANSI_NULL_DFLT_ON on
    SET ANSI_WARNINGS on 放在动态sql里面也不行放在开始这样到可以的,但我没有.MDB文件,没法测,你试试CREATE PROCEDURE ACCESSTOSQL  ASdeclare 
      @sDataSource as varchar(100) ,
     @strSql as varchar(800)
    BEGIN TRAN
    set nocount on
    set  XACT_ABORT on
    SET ANSI_NULL_DFLT_ON on
    SET ANSI_WARNINGS on SET @sDataSource ='C:\TEMP\ICCARD.MDB'--AdvanceListset @strSql='INSERT INTO AdvanceList ( ListID )
                 SELECT ListID FROM OpenDataSource( ''Microsoft.Jet.OLEDB.4.0'', ''Data Source="' + @sDataSource + '";User ID=Admin; Jet OLEDB:Database Password =ICCARD'')...AdvanceList  '
    execute(@strSql)set nocount oFF
      

  3.   

    我试了一下 把set  XACT_ABORT on
    SET ANSI_NULL_DFLT_ON on
    SET ANSI_WARNINGS on 放在动态sql里面也不行放在开始这样到可以的,但我没有.MDB文件,没法测,你试试CREATE PROCEDURE ACCESSTOSQL  ASdeclare 
      @sDataSource as varchar(100) ,
     @strSql as varchar(800)
    BEGIN TRAN
    set nocount on
    set  XACT_ABORT on
    SET ANSI_NULL_DFLT_ON on
    SET ANSI_WARNINGS on SET @sDataSource ='C:\TEMP\ICCARD.MDB'--AdvanceListset @strSql='INSERT INTO AdvanceList ( ListID )
                 SELECT ListID FROM OpenDataSource( ''Microsoft.Jet.OLEDB.4.0'', ''Data Source="' + @sDataSource + '";User ID=Admin; Jet OLEDB:Database Password =ICCARD'')...AdvanceList  '
    execute(@strSql)set nocount oFF
      

  4.   

    declare 
      @sDataSource as varchar(100) ,
     @strSql as varchar(800)
    BEGIN TRAN
    set nocount on
    SET ANSI_NULLS  ON
    SET ANSI_WARNINGS ON 
    SET @sDataSource ='C:\TEMP\ICCARD.MDB'--AdvanceListset @strSql='
    set nocount on
    SET ANSI_NULLS  ON
    SET ANSI_WARNINGS ON 
    INSERT INTO AdvanceList ( ListID )
                 SELECT ListID FROM OpenDataSource( ''Microsoft.Jet.OLEDB.4.0'', ''Data Source="' + @sDataSource + '";User ID=Admin; Jet OLEDB:Database Password =ICCARD'')...AdvanceList '
    execute(@strSql)
    GO