?? 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]
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -