- Rongsen.Com.Cn 版权所有 2008-2010 京ICP备08007000号 京公海网安备11010802026356号 朝阳网安编号:110105199号
- 北京黑客防线网安工作室-黑客防线网安服务器维护基地为您提供专业的服务器维护,企业网站维护,网站维护服务
- (建议采用1024×768分辨率,以达到最佳视觉效果) Powered by 黑客防线网安 ©2009-2010 www.rongsen.com.cn
 
  
    
| 作者:黑客防线网安SQL维护基地 来源:黑客防线网安SQL维护基地 浏览次数:0 | 
在MS SQL SERVER 安装目录下有个可执行文件叫 TEXTCOPY.EXE 
可对 MS SQL SERVER 中的文本或图像数据进行输入输出. 
不过你可以在MS-DOS方式下执行textcopy /? 得到它的描述。 
下面是这个工具的描述: 
Copies a single text or image value into or out of SQL Server. The val 
ue 
is a specified text or image 'column' of a single row (specified by th 
e 
"where clause") of the specified 'table'. 
If the direction is IN (/I) then the data from the specified 'file' is
copied into SQL Server, replacing the existing text or image value. If 
the 
direction is OUT (/O) then the text or image value is copied from 
SQL Server into the specified 'file', replacing any existing file. 
TEXTCOPY [/S ][sqlserver]] [/U [login]] [/P ][password]] 
[/D ][database]] [/T table] [/C column] [/W"where clause"] 
[/F file] [{/I | /O}] [/K chunksize] [/Z] [/?] 
/S sqlserver The SQL Server to connect to. If 'sqlserver' is n 
ot 
specified, the local SQL Server is used. 
/U login The login to connect with. If 'login' is not spec 
ified, 
a trusted connection will be used. 
/P password The password for 'login'. If 'password' is not 
specified, a NULL password will be used. 
/D database The database that contains the table with the tex 
t or 
image data. If 'database' is not specified, the d 
efault 
database of 'login' is used. 
/T table The table that contains the text or image value. 
/C column The text or image column of 'table'. 
/W "where clause" A complete where clause (including the WHERE keyw 
ord) 
that specifies a single row of 'table'. 
/F file The file name. 
/I Copy text or image value into SQL Server from 'fi 
le'. 
/O Copy text or image value out of SQL Server into ' 
file'. 
/K chunksize Size of the data transfer buffer in bytes. Minimu 
m 
value is 1024 bytes, default value is 4096 bytes. 
/Z Display debug information while running. 
/? Display this usage information and exit. 
You will be prompted for any required options you did not specify.
为此, 可写一个存储过程,调用这个命令 
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 
下面是一个拷贝图像到SQL Server的pubs数据库的例子, 表名pub_info, 字段名 
logo,图像文件名picture.bmp,保存到pub_id='0736'记录 sp_textcopy @srvn 
ame = 'ServerName', 
@login = 'Login', 
@password = 'Password', 
@dbname = 'pubs', 
@tbname = 'pub_info', 
@colname = 'logo', 
@filename = 'c:\picture.bmp', 
@whereclause = " WHERE pub_id='0736' ", 
@direction = 'I' 
//bde要设置blobsize否则存进去,读不出来完整 
数据库SQL Server,存放文件的字段类型Image 
Create Table MyTable 
( 
FileName VarChar(20), 
FileSource Image 
) 
存放文件到数据库 
var FileName :String; 
FileName := ExtractFileName(OpenDialog1.FileName); 
with Query do 
begin 
Close; 
Sql.Clear; 
Sql.Add('INSERT INTO MyTable valueS (:FileName,:FileSource)'); 
ParamByName('FileName').AsString := FileName; 
ParamByName('FileSource').LoadFromFile(OpenDialog1.FileName,ftBolob); 
ExecSQL; 
end; 
从数据库中取出文件
var FileName :String; 
begin 
with Query do 
begin 
Close; 
Sql.Clear; 
Sql.Add('SELECT * FROM MyTable WHERE FileName = '?''); 
Open; FileName := 'c:\'+FieldByName('FileName').AsString; 
(FieldByName('FileSource') AS TBlobField).SaveToFile(FileName); 
end; 
end; 
| 我要申请本站:N点 | 黑客防线官网 | | 
| 专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479 |