--1.SQL Server的存储过程调用Com组件
/*--下面的部分在VB中完成首先我们先用VB 作一个最简单的组件工程名称: testSQLCOM
类名: TestMath'函数,计算两个整数相加的结果
Public Function AddMe(a As Long, b As Long) As Long
   AddMe = a + b
End Function编译生成后,我们就可以在 Sql Server 中对这个 Com 组件进行调用了
--*//*--下面是SQL中对上面DLL的调用--*/--定义用到的变量
declare @err int,@src varchar(255),@desc varchar(255)
declare @obj int,@re int--创建调用实例
exec @err=sp_OACreate 'testSQLCOM.TestMath', @obj out
if @err<>0 goto lberr  --如果创建失败,则进行错误处理--调用DLL中的函数
exec @err=sp_OAMethod @obj,'AddMe',@re out,100,200
if @err<>0 goto lberr  --如果调用错误,则进行错误处理print '返回的结果是:' + str(@re)--完成后释放
exec sp_OADestroy @objreturnlberr:
exec sp_oageterrorinfo 0,@src out,@desc out
select cast(@err as varbinary(4)) as 错误号
,@src as 错误源,@desc as 错误描述

解决方案 »

  1.   

    --在SQL中操纵ACCESS数据库--读数据
    SELECT *
    FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
       'c:\test.mdb';'admin';''
    ,[表名])SELECT * 
    FROM opendatasource( 'Microsoft.Jet.OLEDB.4.0',
      'Data Source="c:\test.mdb";Jet OLEDB:Database Password=数据库密码')...[表名]--写入数据
    insert OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
       'c:\test.mdb';'admin';'' ,[表名])
    select * from 表
    /*--说明:
    c:\test.mdb 是你要操作的ACCESS数据库名,如果不在SQL服务器上,需要设置文件所在的目录为完全共享,并将目录改为网络目录
    表名 是你要操作和ACCESS数据库中的表名
    数据库密码 如果你的ACCESS数据库有密码,就要用第二种方式
    其他部分不需要做任何变动如果是导入数据到现有表,对应的在: SELECT *
    前加上: INSERT INTO 表
    语句如果是导入数据并生成新表,对应的在: SELECT *
    后加上: INTO 表
    语句
    --*/
      

  2.   

    3.定时调用存储过程,创建作业就可以了.企业管理器
    --管理
    --SQL Server代理
    --右键作业
    --新建作业
    --"常规"项中输入作业名称
    --"步骤"项
    --新建
    --"步骤名"中输入步骤名
    --"类型"中选择"Transact-SQL 脚本(TSQL)"
    --"数据库"选择执行命令的数据库
    --"命令"中输入要执行的语句
    --确定
    --"调度"项
    --新建调度
    --"名称"中输入调度名称
    --"调度类型"中选择你的作业执行安排
    --如果选择"反复出现"
    --点"更改"来设置你的时间安排
    然后将SQL Agent服务启动,并设置为自动启动,否则你的作业不会被执行