首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

请教怎么向SQL Server2000存入文件

2012-02-10 
请问如何向SQL Server2000存入文件?我想向SQLServer2000数据库存入文件?我所知道的就是有个image格式可以

请问如何向SQL Server2000存入文件?
我想向SQL   Server2000数据库存入文件?我所知道的就是有个image格式可以存入文件,但是能支持的格式似乎很少,如.DOC,   .JPG,   .GIF。

在此我向大家咨询一下,如何保存更多格式的文件,最好是能存入任何格式的。目前的需求就是要存入CAD文件,如dwg,dxf等格式的文件,遇到了难题。

希望能给一个insert进和select出的例子。
我是用delphi开发的。

希望能帮忙说说,谢谢!

[解决办法]
方法:
1、建立过程
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))
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

2、建表和初始化数据
create table 表名 (编号 int,image列名 image)
go
insert 表名 values(1,0x) -- 必须的,且不是null
insert 表名 values(2,0x) -- 必须的,且不是null
go

3、读入
sp_textcopy '你的服务器名 ', 'sa ', '你的密码 ', '库名 ', '表名 ', 'image列名 ', 'c:\图片.bmp ', 'where 编号=1 ', 'I ' --注意条件是 编号=1

sp_textcopy '你的服务器名 ', 'sa ', '你的密码 ', '库名 ', '表名 ', 'image列名 ', 'c:\bb.doc ', 'where 编号=2 ', 'I ' --注意条件是 编号=2

go

4、读出成文件
sp_textcopy '你的服务器名 ', 'sa ', '你的密码 ', '库名 ', '表名 ', 'image列名 ', 'c:\图片.bmp ', 'where 编号=1 ', 'O ' --注意条件是 编号=1

sp_textcopy '你的服务器名 ', 'sa ', '你的密码 ', '库名 ', '表名 ', 'image列名 ', 'c:\bb.doc ', 'where 编号=2 ', 'O ' --注意条件是 编号=2
go

************如果报textcopy不是可执行文件的话,你就到
C:\Program Files\Microsoft SQL Server\MSSQL\Binn
目录下拷备 textcopy.exe到:
C:\Program Files\Microsoft SQL Server\80\Tools\Binn

[解决办法]

--转贴自大力--*/

--建立存取处理的存储过程
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]

[解决办法]
C:\Program Files\Microsoft SQL Server\MSSQL\Binn
目录下拷备 textcopy.exe到:
C:\Program Files\Microsoft SQL Server\80\Tools\Binn
[解决办法]
建议存储文件路径.
[解决办法]
hugoon(MyServices) ( ) 信誉:100 Blog 加为好友 2007-04-08 10:06:06 得分: 0


数据库里面的表压根就没有保存成功


在安装目录下搜索
textcopy.exe
以上路径为默认安装路径下的
楼主是不是安装时改过路径?
[解决办法]
是有的,找找吧!!!
偶用过N次了,个人版/开发版...

热点排行