• textcopy实现文件存取.sql


    /*--利用 textcopy.exe文件实现在数据库中存储/读取文件

     需要textcopy.exe文件,该文件可以在sql 7.0安装光盘找到

    --转贴自大力--*/

    --建立存取处理的存储过程
    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_textcopy]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
     drop procedure [dbo].[sp_textcopy]
    GO

    CREATE PROCEDURE sp_textcopy
    @srvname varchar (30),  --服务器名
    @login varchar (30),   --用户名
    @password varchar (30),  --密码
    @dbname varchar (30),   --数据库名
    @tbname varchar (30),   --表名
    @colname varchar (30),   --存储文件的字段名
    @filename varchar (30),  --要存取的文件名
    @whereclause varchar (40),  --条件
    @direction char(1)   --I 为存储到数据库,O 从数据库中读出成文件
    AS
    DECLARE @exec_str varchar (255)
    SELECT @exec_str =
            'textcopy /S"' + @srvname +
            '" /U ' + @login +
            ' /P ' + @password +
            ' /D ' + @dbname +
            ' /T ' + @tbname +
            ' /C ' + @colname +
            ' /W "' + @whereclause +
            '" /F "' + @filename +
            '" /' + @direction
    EXEC master..xp_cmdshell @exec_str 
    go

    --调用示例:
    --1.创建示例表和初始化数据
    create table tb(id int,img image)
    insert tb
     select 1,0x
     union all select 2,0x
    go

    --2.将文件保存到数据库中
    declare @srv varchar(255),@db sysname,@tb sysname,@col sysname
    select @srv=@@servername --服务器名
     ,@db=db_name()   --数据库名
     ,@tb='tb'    --表名
     ,@col='img'    --列名
    sp_textcopy @srv,'sa','sa的密码',@db,@tb,@col,'c:\test.jpg','where id=1','I' --保存到id=1的记录中,注意条件是:id=1
    sp_textcopy @srv,'sa','sa的密码',@db,@tb,@col,'c:\test.doc','where id=2','I' --保存到id=2的记录中,注意条件是:id=2

    --3.从数据库中读出保存为文件
    sp_textcopy @srv,'sa','sa的密码',@db,@tb,@col,'c:\test.jpg','where id=1','O' --读出id=1的记录,注意条件是:id=1
    sp_textcopy @srv,'sa','sa的密码',@db,@tb,@col,'c:\test.doc','where id=2','O' --读出id=2的记录,注意条件是:id=2

    --删除测试环境
    drop table tb
    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_textcopy]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
     drop procedure [dbo].[sp_textcopy]

  • 相关阅读:
    将数据加载时显示的图片和文字提成公共的--实现方法
    JavaScript【面向对象】-静态方法-私有方法-公有方法-特权方法
    强大的JS数组
    sql工作问题总结
    JSON.stringify()的使用--将string转换成json
    JS小技巧
    JS工作积累
    (六)Redis之数据结构之Set
    (五)Redis之List
    (四)Redis之哈希
  • 原文地址:https://www.cnblogs.com/dushu/p/2532732.html
Copyright © 2020-2023  润新知