请问如何向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